version: '3.8' services: homework-backend: image: ${DOCKER_REGISTRY}/homework-backend:${DOCKER_TAG} ports: - "8080:8080" environment: - ASPNETCORE_ENVIRONMENT=Production - ASPNETCORE_URLS=http://+:8080 volumes: - ./Homework/Logs:/app/Logs networks: - homework-network depends_on: - postgres-prod restart: unless-stopped deploy: replicas: 3 resources: limits: cpus: '1.0' memory: 1G reservations: cpus: '0.5' memory: 512M restart_policy: condition: on-failure delay: 5s max_attempts: 3 window: 120s postgres-prod: image: postgres:15-alpine environment: - POSTGRES_DB=homework_prod - POSTGRES_USER=homework_user - POSTGRES_PASSWORD=${DB_PASSWORD} volumes: - postgres_prod_data:/var/lib/postgresql/data networks: - homework-network restart: unless-stopped deploy: resources: limits: cpus: '1.0' memory: 1G nginx: image: nginx:alpine ports: - "80:80" - "443:443" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/ssl:/etc/nginx/ssl:ro networks: - homework-network depends_on: - homework-backend restart: unless-stopped deploy: resources: limits: cpus: '0.25' memory: 128M volumes: postgres_prod_data: networks: homework-network: driver: bridge