version: '3.8' networks: frontend-styx: frontend-thetis: backend-rhea: backend-rhea-db: backend-calliope: backend-orpheus: backend-redis: services: gatekeeper: tty: false networks: - frontend-styx - frontend-thetis - backend-rhea - backend-calliope - backend-orpheus styx: working_dir: /app/styx networks: - frontend-styx rhea: working_dir: /app/rhea depends_on: rhea-postgres: condition: service_healthy redis: condition: service_healthy networks: - backend-rhea - backend-rhea-db - backend-redis healthcheck: test: ["CMD", "wget", "-q", "--spider", "http://localhost:3000/health"] interval: 15s timeout: 30s retries: 3 start_period: 30s calliope: working_dir: /app/calliope depends_on: redis: condition: service_healthy networks: - backend-rhea - backend-calliope - backend-redis orpheus: working_dir: /app/orpheus depends_on: redis: condition: service_healthy networks: - backend-rhea - backend-orpheus - backend-redis thetis: working_dir: /app/thetis networks: - frontend-thetis rhea-postgres: image: postgres:15-alpine environment: POSTGRES_USER: docker POSTGRES_PASSWORD: docker POSTGRES_DB: db networks: - backend-rhea-db healthcheck: test: [ "CMD-SHELL", "pg_isready -U docker -d db" ] interval: 15s timeout: 30s retries: 3 start_period: 30s redis: image: redis:8-alpine networks: - backend-redis healthcheck: test: ["CMD-SHELL", "redis-cli ping | grep -q PONG"] interval: 5s timeout: 3s retries: 5 chronos: environment: POSTGRES_HOST: rhea-postgres POSTGRES_USER: docker POSTGRES_PASSWORD: docker POSTGRES_DB: db depends_on: rhea-postgres: condition: service_healthy networks: - backend-rhea-db