infrastructure/ansible/roles/gitlab/files/docker-compose.yml

61 lines
1.8 KiB
YAML

version: "2.3"
services:
gitlab:
image: gitlab/gitlab-ce:latest
hostname: gitlab.theorangeone.net
environment:
TZ: Europe/London
GITLAB_OMNIBUS_CONFIG: |
{% filter indent(width=8) %}
{%- include "gitlab.rb" %}
{% endfilter %}
volumes:
- "{{ app_data_dir }}/gitlab/config:/etc/gitlab"
- "{{ app_data_dir }}/gitlab/data:/var/opt/gitlab"
- "{{ app_data_dir }}/gitlab/pages:/mnt/pages"
tmpfs:
- /var/log/gitlab
restart: unless-stopped
depends_on:
- db
- redis
ports:
- "{{ wireguard.clients.intersect.ip }}:8022:22"
labels:
- traefik.enable=true
- traefik.http.routers.gitlab.rule=Host(`git.theorangeone.net`) || Host(`git.0rng.one`)
- traefik.http.routers.gitlab.tls.certresolver=le
- traefik.http.services.gitlab-gitlab.loadbalancer.server.port=80
- traefik.http.services.gitlab-gitlab.loadbalancer.server.scheme=http
db:
image: postgres:12-alpine
restart: unless-stopped
volumes:
- /mnt/tank/dbs/postgres/gitlab:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=gitlab
- POSTGRES_USER=gitlab
- POSTGRES_DB=gitlabhq_production
redis:
image: redis:6-alpine
restart: unless-stopped
volumes:
- /mnt/tank/dbs/redis/gitlab:/data
lsyncd:
image: theorangeone/lsyncd:latest
environment:
- PUID=998
- PGID=998
restart: unless-stopped
volumes:
- "{{ app_data_dir }}/gitlab/pages:/mnt/pages:ro"
- "{{ app_data_dir }}/gitlab/lsyncd/lsyncd.lua:/config/lsyncd.lua:ro"
- "{{ app_data_dir }}/gitlab/lsyncd/id_ed25519.pub:/config/.ssh/id_ed25519.pub"
- "{{ app_data_dir }}/gitlab/lsyncd/id_ed25519:/config/.ssh/id_ed25519"
- "{{ app_data_dir }}/gitlab/lsyncd/known_hosts:/config/.ssh/known_hosts"