1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- # this file is meant for Docker Swarm stacks only
- # trying it in compose will fail because of multiple replicas trying to bind to the same port
- # Swarm currently does not support Compose Spec, so we'll pin to the older version 3.9
- version: "3.9"
- services:
- redis:
- image: redis:alpine
- networks:
- - frontend
- db:
- image: postgres:15-alpine
- environment:
- POSTGRES_USER: "postgres"
- POSTGRES_PASSWORD: "postgres"
- volumes:
- - db-data:/var/lib/postgresql/data
- networks:
- - backend
- vote:
- image: registry.balinex.com/examplevotingapp_vote
- networks:
- - frontend
- - traefik_traefik
- deploy:
- replicas: 1
- labels:
- traefik.http.services.vote.loadbalancer.server.port: '80'
- traefik.http.routers.vote.tls.certresolver: myresolver
- traefik.http.routers.vote.entrypoints: websecure
- traefik.http.routers.vote.rule: Host(`vote.hedex.ir`)
- traefik.http.middlewares.customHeaders.headers.customresponseheaders.X-Powered-By: ParminCloud
- traefik.http.routers.vote.middlewares: customHeaders
- traefik.docker.network: traefik_traefik
- result:
- image: registry.balinex.com/examplevotingapp_result
- networks:
- - backend
- - traefik_traefik
- deploy:
- replicas: 1
- labels:
- traefik.http.services.result.loadbalancer.server.port: '80'
- traefik.http.routers.result.tls.certresolver: myresolver
- traefik.http.routers.result.entrypoints: websecure
- traefik.http.routers.result.rule: Host(`result.hedex.ir`)
- traefik.http.middlewares.customHeaders.headers.customresponseheaders.X-Powered-By: ParminCloud
- traefik.http.routers.result.middlewares: customHeaders
- traefik.docker.network: traefik_traefik
- worker:
- image: registry.balinex.com/examplevotingapp_worker
- networks:
- - frontend
- - backend
- deploy:
- replicas: 1
- networks:
- frontend:
- backend:
- traefik_traefik:
- external: true
- volumes:
- db-data:
|