version: '3' networks: cluster: external: false services: # 3 versions of the same app responding to host's 3001-3 app1: build: . environment: - APP_NAME=App1 ports: - "3001:3000" networks: - cluster app2: build: . environment: - APP_NAME=App2 ports: - "3002:3000" networks: - cluster app3: build: . environment: - APP_NAME=App3 ports: - "3003:3000" networks: - cluster # --- NGINX --- nginx: image: nginx:latest ports: - '8088:80' deploy: replicas: 4 update_config: parallelism: 2 order: start-first failure_action: rollback delay: 10s rollback_config: parallelism: 0 order: stop-first restart_policy: condition: any delay: 5s max_attempts: 3 window: 120s healthcheck: test: ["CMD", "service", "nginx", "status"] networks: - cluster