compose.yaml.j2 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. services:
  2. {{ service_name }}:
  3. image: docker.io/gitea/gitea:1.24.5
  4. container_name: {{ container_name }}
  5. env_file:
  6. - .env.gitea
  7. {% if ports_enabled %}
  8. ports:
  9. - {{ ports_http }}:3000
  10. - {{ ports_ssh }}:22
  11. {% endif %}
  12. {% if network_enabled or traefik_enabled %}
  13. networks:
  14. {% if network_enabled %}
  15. - {{ network_name }}
  16. {% endif %}
  17. {% if traefik_enabled %}
  18. - {{ traefik_network }}
  19. {% endif %}
  20. {% endif %}
  21. {% if traefik_enabled %}
  22. labels:
  23. - traefik.enable=true
  24. - traefik.http.services.{{ service_name }}.loadbalancer.server.port=3000
  25. - traefik.http.services.{{ service_name }}.loadbalancer.server.scheme=http
  26. - traefik.http.routers.{{ service_name }}-http.rule=Host(`{{ traefik_host }}`)
  27. - traefik.http.routers.{{ service_name }}-http.entrypoints={{ traefik_entrypoint }}
  28. {% if traefik_tls_enabled %}
  29. - traefik.http.routers.{{ service_name }}-https.rule=Host(`{{ traefik_host }}`)
  30. - traefik.http.routers.{{ service_name }}-https.entrypoints={{ traefik_tls_entrypoint }}
  31. - traefik.http.routers.{{ service_name }}-https.tls=true
  32. - traefik.http.routers.{{ service_name }}-https.tls.certresolver={{ traefik_tls_certresolver }}
  33. {% endif %}
  34. {% endif %}
  35. volumes:
  36. - gitea-data:/data
  37. - /etc/timezone:/etc/timezone:ro
  38. - /etc/localtime:/etc/localtime:ro
  39. depends_on:
  40. - {{ service_name }}-postgres
  41. restart: {{ restart_policy }}
  42. {% if not database_external %}
  43. {{ service_name }}-postgres:
  44. image: docker.io/library/postgres:17.6
  45. container_name: {{ service_name }}-db
  46. env_file:
  47. - .env.postgres
  48. healthcheck:
  49. test: ["CMD-SHELL", "pg_isready -U {{ database_user }}"]
  50. start_period: 30s
  51. interval: 10s
  52. timeout: 10s
  53. retries: 5
  54. volumes:
  55. - gitea-db:/var/lib/postgresql/data
  56. {% if network_enabled or traefik_enabled %}
  57. networks:
  58. {% if network_enabled %}
  59. - {{ network_name }}
  60. {% endif %}
  61. {% if traefik_enabled %}
  62. - {{ traefik_network }}
  63. {% endif %}
  64. {% endif %}
  65. restart: {{ restart_policy }}
  66. {% endif %}
  67. volumes:
  68. gitea-data:
  69. driver: local
  70. {% if not database_external %}
  71. gitea-db:
  72. driver: local
  73. {% endif %}
  74. {% if network_enabled or traefik_enabled %}
  75. networks:
  76. {% if network_enabled %}
  77. {{ network_name }}:
  78. {% if network_external %}
  79. external: true
  80. {% endif %}
  81. {% endif %}
  82. {% if traefik_enabled %}
  83. {{ traefik_network }}:
  84. external: true
  85. {% endif %}
  86. {% endif %}