docker-stack-simple.yml 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. environment:
  19. POSTGRES_USER: "postgres"
  20. POSTGRES_PASSWORD: "postgres"
  21. volumes:
  22. - db-data:/var/lib/postgresql/data
  23. networks:
  24. - backend
  25. deploy:
  26. placement:
  27. constraints: [node.role == manager]
  28. vote:
  29. image: dockersamples/examplevotingapp_vote:before
  30. ports:
  31. - 5000:80
  32. networks:
  33. - frontend
  34. depends_on:
  35. - redis
  36. deploy:
  37. replicas: 1
  38. update_config:
  39. parallelism: 2
  40. restart_policy:
  41. condition: on-failure
  42. result:
  43. image: dockersamples/examplevotingapp_result:before
  44. ports:
  45. - 5001:80
  46. networks:
  47. - backend
  48. depends_on:
  49. - db
  50. deploy:
  51. replicas: 1
  52. update_config:
  53. parallelism: 2
  54. delay: 10s
  55. restart_policy:
  56. condition: on-failure
  57. worker:
  58. image: dockersamples/examplevotingapp_worker
  59. networks:
  60. - frontend
  61. - backend
  62. depends_on:
  63. - db
  64. - redis
  65. deploy:
  66. mode: replicated
  67. replicas: 1
  68. labels: [APP=VOTING]
  69. restart_policy:
  70. condition: on-failure
  71. delay: 10s
  72. max_attempts: 3
  73. window: 120s
  74. placement:
  75. constraints: [node.role == manager]
  76. networks:
  77. frontend:
  78. backend:
  79. volumes:
  80. db-data: