open-productive-stack/gitlab/docker-compose.yml
2025-04-06 22:48:06 +02:00

54 lines
1.7 KiB
YAML

services:
gitlab:
image: gitlab/gitlab-ce:17.8.6-ce.0
container_name: gitlab
hostname: '${GITLAB_DOMAIN}'
environment:
GITLAB_OMNIBUS_CONFIG: |
# Add any other gitlab.rb configuration here, each on its own line
external_url 'https://${GITLAB_DOMAIN}'
gitlab_rails['gitlab_shell_ssh_port'] = 2424
# We need to tell GitLab to use SSH port 22 internally
gitlab_shell['auth_file'] = "/var/opt/gitlab/.ssh/authorized_keys"
#gitlab_shell['ssh_port'] = 22
nginx['listen_port'] = 80
nginx['listen_https'] = false
nginx['proxy_set_headers'] = {
"X-Forwarded-Proto" => "https",
"X-Forwarded-Ssl" => "on"
}
labels:
- traefik.enable=true
- traefik.docker.network=traefik
# HTTP configuration
- traefik.http.routers.gitlab.entrypoints=web,websecure
- traefik.http.routers.gitlab.tls=true
- traefik.http.routers.gitlab.tls.certresolver=le
- traefik.http.routers.gitlab.rule=Host(`${GITLAB_DOMAIN}`)
- traefik.http.services.gitlab.loadbalancer.server.port=80
# TCP/SSH configuration - completely revised
- "traefik.tcp.routers.gitlab-ssh.rule=HostSNI(`*`)"
- "traefik.tcp.routers.gitlab-ssh.entrypoints=gitlab-ssh"
- "traefik.tcp.services.gitlab-ssh.loadbalancer.server.port=22"
volumes:
- 'gitlab-config:/etc/gitlab'
- 'gitlab-logs:/var/log/gitlab'
- 'gitlab-data:/var/opt/gitlab'
shm_size: '256m'
networks:
- traefik
restart: unless-stopped
volumes:
gitlab-config:
name: gitlab-config
gitlab-logs:
name: gitlab-logs
gitlab-data:
name: gitlab-data
networks:
traefik:
name: traefik
external: true