services: app: image: registry.infra.mintel.me/mintel/mb-grid-solutions:latest restart: always expose: - "3000" labels: - "traefik.enable=true" - "traefik.http.routers.mb-grid-solutions.rule=Host(`mb-grid-solutions.com`) || Host(`www.mb-grid-solutions.com`)" - "traefik.http.routers.mb-grid-solutions.entrypoints=websecure" - "traefik.http.routers.mb-grid-solutions.tls.certresolver=le" - "traefik.http.services.mb-grid-solutions.loadbalancer.server.port=3000" healthcheck: test: ["CMD", "node", "-e", "const http = require('http'); const options = { host: '127.0.0.1', port: 3000, path: '/health', timeout: 2000 }; const request = http.request(options, (res) => { if (res.statusCode === 200) { process.exit(0); } else { process.exit(1); } }); request.on('error', (err) => { process.exit(1); }); request.end();"] interval: 5s timeout: 2s retries: 10 deploy: replicas: 2 update_config: order: start-first failure_action: rollback delay: 5s rollback_config: parallelism: 1 order: stop-first restart_policy: condition: on-failure networks: - infra networks: infra: external: true