docker-stack.yml 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. version: "3"
  2. services:
  3. redis:
  4. image: redis:alpine
  5. networks:
  6. - frontend
  7. deploy:
  8. replicas: 1
  9. update_config:
  10. parallelism: 2
  11. delay: 10s
  12. restart_policy:
  13. condition: on-failure
  14. db:
  15. image: postgres:9.4
  16. volumes:
  17. - db-data:/var/lib/postgresql/data
  18. networks:
  19. - backend
  20. deploy:
  21. placement:
  22. constraints: [node.role == manager]
  23. vote:
  24. image: dockersamples/examplevotingapp_vote:before
  25. ports:
  26. - 5000:80
  27. networks:
  28. - frontend
  29. depends_on:
  30. - redis
  31. deploy:
  32. replicas: 2
  33. update_config:
  34. parallelism: 2
  35. restart_policy:
  36. condition: on-failure
  37. result:
  38. image: dockersamples/examplevotingapp_result:before
  39. ports:
  40. - 5001:80
  41. networks:
  42. - backend
  43. depends_on:
  44. - db
  45. deploy:
  46. replicas: 1
  47. update_config:
  48. parallelism: 2
  49. delay: 10s
  50. restart_policy:
  51. condition: on-failure
  52. worker:
  53. image: dockersamples/examplevotingapp_worker
  54. networks:
  55. - frontend
  56. - backend
  57. deploy:
  58. mode: replicated
  59. replicas: 1
  60. labels: [APP=VOTING]
  61. restart_policy:
  62. condition: on-failure
  63. delay: 10s
  64. max_attempts: 3
  65. window: 120s
  66. placement:
  67. constraints: [node.role == manager]
  68. visualizer:
  69. image: dockersamples/visualizer:stable
  70. ports:
  71. - "8080:8080"
  72. stop_grace_period: 1m30s
  73. volumes:
  74. - "/var/run/docker.sock:/var/run/docker.sock"
  75. deploy:
  76. placement:
  77. constraints: [node.role == manager]
  78. networks:
  79. frontend:
  80. backend:
  81. volumes:
  82. db-data: