version: "3" services: mongo: image: mongo:3.6 ports: - "27017:27017" networks: - derbyjs_overlay redis: image: redis:3 ports: - "6379:6379" networks: - derbyjs_overlay derby_site: image: derbyjs/derby-site:2024-05-31 deploy: replicas: 2 update_config: parallelism: 1 delay: 10s labels: &derby_site_labels traefik.enable: "true" traefik.docker.network: derbyjs_derbyjs_overlay traefik.http.routers.derby-site.rule: Host(`derbyjs.com`) || Host(`www.derbyjs.com`) || Path(`/robots.txt`) traefik.http.services.derby-site.loadbalancer.server.port: 4000 traefik.priority: 100 ports: - "4000:4000" labels: *derby_site_labels networks: - derbyjs_overlay derby_examples: image: derbyjs/derby-examples:2024-05-20 deploy: replicas: 1 update_config: parallelism: 1 delay: 10s labels: &derby_examples_labels traefik.enable: "true" traefik.docker.network: derbyjs_derbyjs_overlay traefik.http.routers.charts.rule: Host(`charts.derbyjs.com`) traefik.http.routers.charts.service: charts traefik.http.services.charts.loadbalancer.server.port: 8001 traefik.http.routers.chat.rule: Host(`chat.derbyjs.com`) traefik.http.routers.chat.service: chat traefik.http.services.chat.loadbalancer.server.port: 8002 traefik.http.routers.codemirror.rule: Host(`codemirror.derbyjs.com`) traefik.http.routers.codemirror.service: codemirror traefik.http.services.codemirror.loadbalancer.server.port: 8003 traefik.http.routers.directory.rule: Host(`directory.derbyjs.com`) traefik.http.routers.directory.service: directory traefik.http.services.directory.loadbalancer.server.port: 8004 traefik.http.routers.hello.rule: Host(`hello.derbyjs.com`) traefik.http.routers.hello.service: hello traefik.http.services.hello.loadbalancer.server.port: 8005 traefik.http.routers.sink.rule: Host(`sink.derbyjs.com`) traefik.http.routers.sink.service: sink traefik.http.services.sink.loadbalancer.server.port: 8006 traefik.http.routers.todos.rule: Host(`todos.derbyjs.com`) traefik.http.routers.todos.service: todos traefik.http.services.todos.loadbalancer.server.port: 8007 traefik.http.routers.widgets.rule: Host(`widgets.derbyjs.com`) traefik.http.routers.widgets.service: widgets traefik.http.services.widgets.loadbalancer.server.port: 8008 traefik.http.routers.render.rule: Host(`render.derbyjs.com`) traefik.http.routers.render.service: render traefik.http.services.render.loadbalancer.server.port: 8009 ports: - "8001:8001" - "8002:8002" - "8003:8003" - "8004:8004" - "8005:8005" - "8006:8006" - "8007:8007" - "8008:8008" - "8009:8009" depends_on: - mongo - redis environment: MONGO_HOST: mongo REDIS_HOST: redis labels: *derby_examples_labels networks: - derbyjs_overlay traefik: image: traefik:v2.11 deploy: replicas: 2 update_config: parallelism: 1 delay: 10s volumes: - /var/run/docker.sock:/var/run/docker.sock ports: - "0.0.0.0:8080:80" command: - --api=true - --ping=true - --ping.entrypoint=http - --providers.docker - --providers.docker.exposedbydefault=false - --providers.docker.swarmmode=${SWARM_MODE} networks: - derbyjs_overlay networks: derbyjs_overlay: driver: overlay