docker-stack.yml 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. # this file is meant for Docker Swarm stacks only
  2. # trying it in compose will fail because of multiple replicas trying to bind to the same port
  3. # Swarm currently does not support Compose Spec, so we'll pin to the older version 3.9
  4. version: "3.9"
  5. services:
  6. redis:
  7. image: redis:alpine
  8. networks:
  9. - frontend
  10. db:
  11. image: postgres:15-alpine
  12. environment:
  13. POSTGRES_USER: "postgres"
  14. POSTGRES_PASSWORD: "postgres"
  15. volumes:
  16. - db-data:/var/lib/postgresql/data
  17. networks:
  18. - backend
  19. vote:
  20. image: registry.balinex.com/examplevotingapp_vote
  21. networks:
  22. - frontend
  23. - traefik_traefik
  24. deploy:
  25. replicas: 1
  26. labels:
  27. traefik.http.services.vote.loadbalancer.server.port: '80'
  28. traefik.http.routers.vote.tls.certresolver: myresolver
  29. traefik.http.routers.vote.entrypoints: websecure
  30. traefik.http.routers.vote.rule: Host(`vote.hedex.ir`)
  31. traefik.http.middlewares.customHeaders.headers.customresponseheaders.X-Powered-By: ParminCloud
  32. traefik.http.routers.vote.middlewares: customHeaders
  33. traefik.docker.network: traefik_traefik
  34. result:
  35. image: registry.balinex.com/examplevotingapp_result
  36. networks:
  37. - backend
  38. - traefik_traefik
  39. deploy:
  40. replicas: 1
  41. labels:
  42. traefik.http.services.result.loadbalancer.server.port: '80'
  43. traefik.http.routers.result.tls.certresolver: myresolver
  44. traefik.http.routers.result.entrypoints: websecure
  45. traefik.http.routers.result.rule: Host(`result.hedex.ir`)
  46. traefik.http.middlewares.customHeaders.headers.customresponseheaders.X-Powered-By: ParminCloud
  47. traefik.http.routers.result.middlewares: customHeaders
  48. traefik.docker.network: traefik_traefik
  49. worker:
  50. image: registry.balinex.com/examplevotingapp_worker
  51. networks:
  52. - frontend
  53. - backend
  54. deploy:
  55. replicas: 1
  56. networks:
  57. frontend:
  58. backend:
  59. traefik_traefik:
  60. external: true
  61. volumes:
  62. db-data: