services: postgres: image: postgres:15 environment: POSTGRES_PASSWORD: tracemap POSTGRES_USER: tracemap POSTGRES_DB: tracemap healthcheck: test: ["CMD-SHELL", "pg_isready -U tracemap -d tracemap"] interval: 2s timeout: 2s retries: 30 redis: image: redis:7 healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 2s timeout: 2s retries: 30 api: build: context: . dockerfile: Dockerfile.api environment: TRACEMAP_DATABASE_URL: postgresql+asyncpg://tracemap:tracemap@postgres:5432/tracemap TRACEMAP_REDIS_URL: redis://redis:6379/0 TRACEMAP_ARTIFACT_DIR: /data/artifacts TRACEMAP_BOOTSTRAP_TOKEN_HASH: "" TRACEMAP_ASYNC_WORKER_ENABLED: "true" volumes: - tracemap-artifacts:/data/artifacts ports: - "127.0.0.1:8080:8080" depends_on: postgres: condition: service_healthy redis: condition: service_healthy worker: build: context: . dockerfile: Dockerfile.worker environment: TRACEMAP_DATABASE_URL: postgresql+asyncpg://tracemap:tracemap@postgres:5432/tracemap TRACEMAP_REDIS_URL: redis://redis:6379/0 TRACEMAP_ARTIFACT_DIR: /data/artifacts volumes: - tracemap-artifacts:/data/artifacts depends_on: postgres: condition: service_healthy redis: condition: service_healthy volumes: tracemap-artifacts: