| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- services:
- {{ service_name }}:
- image: docker.io/gitlab/gitlab-ce:18.8.3-ce.0
- restart: {{ restart_policy }}
- shm_size: '256m'
- env_file: .env
- {% if traefik_enabled %}
- networks:
- {{ traefik_network }}:
- {% endif %}
- ports:
- {% if not traefik_enabled %}
- - "{{ ports_http }}:80"
- {% endif %}
- - "{{ ports_ssh }}:22"
- {% if registry_enabled and not traefik_enabled %}
- - "{{ ports_registry }}:5000"
- {% endif %}
- volumes:
- - ./config/gitlab.rb:/etc/gitlab/gitlab.rb:ro
- - {{ service_name }}_config:/etc/gitlab
- - {{ service_name }}_logs:/var/log/gitlab
- - {{ service_name }}_data:/var/opt/gitlab
- {% if traefik_enabled %}
- labels:
- - traefik.enable=true
- - traefik.docker.network={{ traefik_network }}
- - traefik.http.services.{{ service_name }}_web.loadBalancer.server.port=80
- - traefik.http.routers.{{ service_name }}_http.service={{ service_name }}_web
- - traefik.http.routers.{{ service_name }}_http.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
- - traefik.http.routers.{{ service_name }}_http.entrypoints=web
- {% if traefik_tls_enabled %}
- - traefik.http.routers.{{ service_name }}_https.service={{ service_name }}_web
- - traefik.http.routers.{{ service_name }}_https.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
- - traefik.http.routers.{{ service_name }}_https.entrypoints=websecure
- - traefik.http.routers.{{ service_name }}_https.tls=true
- - traefik.http.routers.{{ service_name }}_https.tls.certresolver={{ traefik_tls_certresolver }}
- {% endif %}
- {% if registry_enabled %}
- - traefik.http.services.{{ service_name }}_registry.loadBalancer.server.port=5000
- - traefik.http.routers.{{ service_name }}_registry-http.service={{ service_name }}_registry
- - traefik.http.routers.{{ service_name }}_registry-http.rule=Host(`{{ traefik_registry_host }}`.{{ traefik_domain }}`)
- - traefik.http.routers.{{ service_name }}_registry-http.entrypoints=web
- {% if traefik_tls_enabled %}
- - traefik.http.routers.{{ service_name }}_registry-https.service={{ service_name }}_registry
- - traefik.http.routers.{{ service_name }}_registry-https.rule=Host(`{{ traefik_registry_host }}`.{{ traefik_domain }}`)
- - traefik.http.routers.{{ service_name }}_registry-https.entrypoints=websecure
- - traefik.http.routers.{{ service_name }}_registry-https.tls=true
- - traefik.http.routers.{{ service_name }}_registry-https.tls.certresolver={{ traefik_tls_certresolver }}
- {% endif %}
- {% endif %}
- {% endif %}
- volumes:
- {{ service_name }}_config:
- driver: local
- {{ service_name }}_logs:
- driver: local
- {{ service_name }}_data:
- driver: local
- {% if traefik_enabled %}
- networks:
- {{ traefik_network }}:
- external: true
- {% endif %}
|