docker-stack.yml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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: reg.hedex.ir/examplevotingapp_vote
  21. ports:
  22. - 5000:80
  23. networks:
  24. - frontend
  25. - traefik_traefik
  26. deploy:
  27. replicas: 1
  28. labels:
  29. traefik.http.services.vote.loadbalancer.server.port: '80'
  30. traefik.http.routers.vote.tls.certresolver: myresolver
  31. traefik.http.routers.vote.entrypoints: websecure
  32. traefik.http.routers.vote.rule: Host(`vote.hedex.ir`)
  33. traefik.http.middlewares.customHeaders.headers.customresponseheaders.X-Powered-By: ParminCloud
  34. traefik.http.routers.vote.middlewares: customHeaders
  35. traefik.docker.network: traefik_traefik
  36. result:
  37. image: reg.hedex.ir/examplevotingapp_result
  38. ports:
  39. - 5001:80
  40. networks:
  41. - backend
  42. - traefik_traefik
  43. deploy:
  44. replicas: 1
  45. labels:
  46. traefik.http.services.result.loadbalancer.server.port: '80'
  47. traefik.http.routers.result.tls.certresolver: myresolver
  48. traefik.http.routers.result.entrypoints: websecure
  49. traefik.http.routers.result.rule: Host(`vote.hedex.ir`)
  50. traefik.http.middlewares.customHeaders.headers.customresponseheaders.X-Powered-By: ParminCloud
  51. traefik.http.routers.result.middlewares: customHeaders
  52. traefik.docker.network: traefik_traefik
  53. worker:
  54. image: reg.hedex.ir/examplevotingapp_worker
  55. networks:
  56. - frontend
  57. - backend
  58. deploy:
  59. replicas: 1
  60. networks:
  61. frontend:
  62. backend:
  63. traefik_traefik:
  64. external: true
  65. volumes:
  66. db-data: