Hello , I am trying to run a prefect in docker. I looked in this community. But it seems that there is no proper docker compose file for prefect. I was trying to use this for the prefect docker compose. I am very new to docker. So, I tried to write a docker compose to up and prefect. I am also learning prefect very recently. I tried to write the docker compose below following this example. Is there any proper docker compose.yml file that I can use to create nodes for prefect and view the prefect dashboard? The dashboard is not showing. I am looking for docker-compose.yml for prefect v3. Thank you in advance for any assistance.
https://github.com/PrefectHQ/prefect-background-task-examples/blob/main/chaos-duck/docker-compose.yaml
But I seem to be encountering this issue in the docker compose logs.
prefect | During handling of the above exception, another exception occurred:
prefect |
prefect | Traceback (most recent call last):
prefect | File "/usr/local/bin/prefect", line 8, in <module>
prefect | sys.exit(cli())
prefect | File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1130, in __call__
prefect | return self.main(*args, **kwargs)
prefect | File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1055, in main
prefect | rv = self.invoke(ctx)
prefect | File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1657, in invoke
prefect | return _process_result(sub_ctx.command.invoke(sub_ctx))
prefect | File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1657, in invoke
prefect | return _process_result(sub_ctx.command.invoke(sub_ctx))
prefect | File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1404, in invoke
prefect | return ctx.invoke(self.callback, **ctx.params)
prefect | File "/usr/local/lib/python3.7/site-packages/click/core.py", line 760, in invoke
prefect | return __callback(*args, **kwargs)
prefect | File "/usr/local/lib/python3.7/site-packages/prefect/cli/server.py", line 674, in start
prefect | ["docker-compose", "down"], cwd=compose_dir_path, env=env
prefect | File "/usr/local/lib/python3.7/subprocess.py", line 411, in check_output
prefect | **kwargs).stdout
prefect | File "/usr/local/lib/python3.7/subprocess.py", line 488, in run
prefect | with Popen(*popenargs, **kwargs) as process:
prefect | File "/usr/local/lib/python3.7/subprocess.py", line 800, in __init__
prefect | restore_signals, start_new_session)
prefect | File "/usr/local/lib/python3.7/subprocess.py", line 1551, in _execute_child
prefect | raise child_exception_type(errno_num, err_msg, err_filename)
prefect | FileNotFoundError: [Errno 2] No such file or directory: 'docker-compose': 'docker-compose'
My docker-compose.yml
services:
postgres:
image: postgres:16
restart: always
environment:
POSTGRES_USER: prefect
POSTGRES_PASSWORD: password
POSTGRES_DB: prefect
volumes:
- postgres-data:/var/lib/postgresql/data
networks:
- prefect-net
prefect:
image: prefecthq/prefect:latest
container_name: prefect
restart: always
environment:
PREFECT_HOME: /data
PREFECT_API_DATABASE_CONNECTION_URL: <postgresql+asyncpg://prefect:password@postgres/prefect>
command: prefect server start
ports:
- "4200:4200"
volumes:
- prefect-data:/data
depends_on:
- postgres
networks:
- prefect-net
volumes:
postgres-data:
prefect-data:
networks:
prefect-net: