81 lines
2.3 KiB
YAML
81 lines
2.3 KiB
YAML
services:
|
|
postgres:
|
|
image: postgres:14
|
|
environment:
|
|
POSTGRES_USER: prefect
|
|
POSTGRES_PASSWORD: prefect
|
|
POSTGRES_DB: prefect
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U prefect"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
dragonfly:
|
|
image: 'docker.dragonflydb.io/dragonflydb/dragonfly'
|
|
ulimits:
|
|
memlock: -1
|
|
volumes:
|
|
- dragonflydata:/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "redis-cli ping"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
prefect-server:
|
|
image: prefecthq/prefect:3-latest
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
dragonfly:
|
|
condition: service_healthy
|
|
environment:
|
|
PREFECT_API_DATABASE_CONNECTION_URL: postgresql+asyncpg://prefect:prefect@postgres:5432/prefect
|
|
PREFECT_SERVER_API_HOST: 0.0.0.0
|
|
PREFECT_UI_API_URL: http://localhost:4200/api
|
|
PREFECT_MESSAGING_BROKER: prefect_redis.messaging
|
|
PREFECT_MESSAGING_CACHE: prefect_redis.messaging
|
|
PREFECT_REDIS_MESSAGING_HOST: dragonfly
|
|
PREFECT_REDIS_MESSAGING_PORT: 6379
|
|
PREFECT_REDIS_MESSAGING_DB: 0
|
|
command: prefect server start --no-services
|
|
ports:
|
|
- "4200:4200"
|
|
healthcheck:
|
|
test: ["CMD", "python", "-c", "import urllib.request as u; u.urlopen('http://localhost:4200/api/health', timeout=1)"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
|
|
prefect-services:
|
|
image: prefecthq/prefect:3-latest
|
|
depends_on:
|
|
prefect-server:
|
|
condition: service_healthy
|
|
environment:
|
|
PREFECT_API_DATABASE_CONNECTION_URL: postgresql+asyncpg://prefect:prefect@postgres:5432/prefect
|
|
PREFECT_MESSAGING_BROKER: prefect_redis.messaging
|
|
PREFECT_MESSAGING_CACHE: prefect_redis.messaging
|
|
PREFECT_REDIS_MESSAGING_HOST: dragonfly
|
|
PREFECT_REDIS_MESSAGING_PORT: 6379
|
|
PREFECT_REDIS_MESSAGING_DB: 0
|
|
command: prefect server services start
|
|
|
|
prefect-worker:
|
|
image: prefecthq/prefect:3-latest
|
|
depends_on:
|
|
prefect-server:
|
|
condition: service_healthy
|
|
environment:
|
|
PREFECT_API_URL: http://prefect-server:4200/api
|
|
command: prefect worker start --pool local-pool
|
|
restart: on-failure
|
|
|
|
volumes:
|
|
postgres_data:
|
|
dragonflydata:
|