Hello , I am trying to run a prefect in docker. I looked in this community. But it seems that there ...
o

omiakif

12 months ago
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: