swarm-v1.j2 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. ---
  2. services:
  3. {{ service_name }}:
  4. image: {{ test_image }}
  5. {% if swarm_enabled %}
  6. deploy:
  7. mode: {{ swarm_placement_mode }}
  8. {% if swarm_placement_mode == 'replicated' %}
  9. replicas: {{ swarm_replicas }}
  10. {% endif %}
  11. {% if swarm_placement_host %}
  12. placement:
  13. constraints:
  14. - node.hostname == {{ swarm_placement_host }}
  15. {% endif %}
  16. {% if traefik_enabled %}
  17. labels:
  18. - traefik.enable=true
  19. - traefik.docker.network={{ traefik_network }}
  20. - traefik.http.services.{{ service_name }}-web.loadBalancer.server.port={{ test_port }}
  21. - traefik.http.routers.{{ service_name }}-http.service={{ service_name }}-web
  22. - traefik.http.routers.{{ service_name }}-http.rule=Host(`{{ traefik_host }}`)
  23. - traefik.http.routers.{{ service_name }}-http.entrypoints={{ traefik_entrypoint }}
  24. {% if traefik_tls_enabled %}
  25. - traefik.http.routers.{{ service_name }}-https.service={{ service_name }}-web
  26. - traefik.http.routers.{{ service_name }}-https.rule=Host(`{{ traefik_host }}`)
  27. - traefik.http.routers.{{ service_name }}-https.entrypoints={{ traefik_tls_entrypoint }}
  28. - traefik.http.routers.{{ service_name }}-https.tls=true
  29. - traefik.http.routers.{{ service_name }}-https.tls.certresolver={{ traefik_tls_certresolver }}
  30. {% endif %}
  31. {% endif %}
  32. update_config:
  33. parallelism: 1
  34. delay: 10s
  35. restart_policy:
  36. condition: on-failure
  37. {% else %}
  38. {% if traefik_enabled %}
  39. labels:
  40. - traefik.enable=true
  41. - traefik.docker.network={{ traefik_network }}
  42. - traefik.http.services.{{ service_name }}-web.loadBalancer.server.port={{ test_port }}
  43. - traefik.http.routers.{{ service_name }}-http.service={{ service_name }}-web
  44. - traefik.http.routers.{{ service_name }}-http.rule=Host(`{{ traefik_host }}`)
  45. - traefik.http.routers.{{ service_name }}-http.entrypoints={{ traefik_entrypoint }}
  46. {% if traefik_tls_enabled %}
  47. - traefik.http.routers.{{ service_name }}-https.service={{ service_name }}-web
  48. - traefik.http.routers.{{ service_name }}-https.rule=Host(`{{ traefik_host }}`)
  49. - traefik.http.routers.{{ service_name }}-https.entrypoints={{ traefik_tls_entrypoint }}
  50. - traefik.http.routers.{{ service_name }}-https.tls=true
  51. - traefik.http.routers.{{ service_name }}-https.tls.certresolver={{ traefik_tls_certresolver }}
  52. {% endif %}
  53. {% endif %}
  54. restart: {{ restart_policy }}
  55. {% endif %}
  56. networks:
  57. {% if traefik_enabled %}
  58. - {{ traefik_network }}
  59. {% endif %}
  60. - {{ network_name }}
  61. {% if swarm_enabled %}
  62. networks:
  63. {% if traefik_enabled %}
  64. {{ traefik_network }}:
  65. external: true
  66. {% endif %}
  67. {{ network_name }}:
  68. driver: overlay
  69. attachable: true
  70. {% else %}
  71. networks:
  72. {% if traefik_enabled %}
  73. {{ traefik_network }}:
  74. external: true
  75. {% endif %}
  76. {{ network_name }}:
  77. driver: bridge
  78. {% endif %}