Linux 上容器化部署 GitLab 实操指南
一 环境准备与目录规划
二 部署方式
version: '3.6'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com:5480'
gitlab_rails['gitlab_shell_ssh_port'] = 5022
gitlab_rails['time_zone'] = 'Asia/Shanghai'
ports:
- '5480:80'
- '5443:443'
- '5022:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
docker run -d \
--hostname gitlab.example.com \
-p 8443:443 -p 8080:80 -p 2222:22 \
--name gitlab \
--restart always \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/logs:/var/log/gitlab \
-v /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
三 关键配置
external_url 'https://gitlab.example.com'
letsencrypt['enabled'] = true
letsencrypt['contact_emails'] = ['admin@example.com']
external_url 'https://gitlab.example.com'
nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
四 运维与安全要点