82 lines
2.0 KiB
YAML
82 lines
2.0 KiB
YAML
# Shared config for all dagster services
|
|
x-dagster: &dagster-common
|
|
env_file: .env
|
|
environment:
|
|
DAGSTER_HOME: /app/dagster_home
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
|
|
services:
|
|
# Metadata storage and dbt target
|
|
postgres:
|
|
image: postgres:16
|
|
container_name: postgres
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
environment:
|
|
POSTGRES_USER: ${POSTGRES_USER}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_DB: ${POSTGRES_DB}
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
ports:
|
|
- "10.0.0.108:5432:5432"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
# User code gRPC server
|
|
dagster-usercode:
|
|
<<: *dagster-common
|
|
build:
|
|
context: .
|
|
target: usercode
|
|
container_name: dagster-usercode
|
|
command:
|
|
["dagster", "api", "grpc", "-h", "0.0.0.0", "-p", "4000", "-m", "data_platform.definitions"]
|
|
volumes:
|
|
- dbt-target:/app/dbt/target
|
|
expose:
|
|
- "4000"
|
|
healthcheck:
|
|
test: ["CMD", "dagster", "api", "grpc-health-check", "-p", "4000"]
|
|
interval: 15s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 30s
|
|
|
|
# Web UI
|
|
dagster-webserver:
|
|
<<: *dagster-common
|
|
build:
|
|
context: .
|
|
target: dagster-infra
|
|
container_name: dagster-webserver
|
|
command:
|
|
["dagster-webserver", "-h", "0.0.0.0", "-p", "3000", "-w", "/app/dagster_home/workspace.yaml"]
|
|
ports:
|
|
- "3000:3000"
|
|
depends_on:
|
|
dagster-usercode:
|
|
condition: service_healthy
|
|
|
|
# Schedules, sensors and run queuing
|
|
dagster-daemon:
|
|
<<: *dagster-common
|
|
build:
|
|
context: .
|
|
target: dagster-infra
|
|
container_name: dagster-daemon
|
|
command: ["dagster-daemon", "run", "-w", "/app/dagster_home/workspace.yaml"]
|
|
depends_on:
|
|
dagster-usercode:
|
|
condition: service_healthy
|
|
|
|
volumes:
|
|
postgres-data:
|
|
dbt-target:
|