services: database: container_name: database image: postgres:17.6-alpine3.22 environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=meteologica ports: - "5432:5432" restart: always healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d meteologica"] interval: 5s timeout: 5s retries: 5 service_a: build: context: . dockerfile: ./service_a/Dockerfile container_name: service_a environment: - URL_SERVICE_A=${URL_SERVICE_A} - DSN=${DSN} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} ports: - "8080:8080" restart: unless-stopped depends_on: database: condition: service_healthy service_b: build: context: . dockerfile: ./service_b/Dockerfile container_name: service_b environment: - URL_SERVICE_A=${URL_SERVICE_A} ports: - "8090:8090" restart: unless-stopped