The flows within the docker container are in /opt/prefect/flows, but the flow file is in a different local folder when the deployment is created (say daily/flows). In order to create the deployment, the relative path is needed to specify the entry point, something like daily/flows/etl.py:etl. This path is added to the generated yaml, in the DO NOT EDIT BELOW THIS LINE section. At runtime, the container fails to find the workflow, because there is no /opt/prefect/flows/daily/flows/etl.py. Changing the yaml section fixes the problem. This raises a question why prefect deployment requires the local file to exist? If the file needs to exists at “deployment” time, then how else this common situation is to be handled? If the file is not really needed at “deployment” time, then why verify that it exists?
Thanks in advance!