docker-stack-simple.yml 1.4 KB

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