version: '3.9' services: web: build: context: . dockerfile: Dockerfile labels: - "environment=${ENV}" volumes: - web_data:/app/data ports: - "3000:3000" - "443:443" depends_on: db: condition: service_healthy environment: DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db/${POSTGRES_DB} networks: - spina-app_default env_file: - .env.${ENV} db: image: postgres:latest volumes: - postgres_data:/var/lib/postgresql/data environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 10s timeout: 5s retries: 5 networks: - spina-app_default networks: spina-app_default: driver: bridge volumes: web_data: driver: local postgres_data: driver: local