一、环境准备
- 创建目录结构
mkdir -p /docker/software/gitlab/{data,logs,config} cd /docker/software/gitlab
二、编写 docker-compose.yml
version: '3.8'
services:gitlab:image: gitlab/gitlab-ce:latest # 社区版镜像container_name: gitlabrestart: unless-stoppedhostname: 'gitlab.example.com' # 替换为实际域名或IPenvironment:TZ: Asia/Shanghai # 时区设置GITLAB_OMNIBUS_CONFIG: |external_url 'http://gitlab.example.com:8929' # 外部访问地址gitlab_rails['gitlab_shell_ssh_port'] = 2224 # SSH端口# 可选配置:邮箱、数据库等gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.example.com"gitlab_rails['smtp_port'] = 465ports:- "8929:8929" # HTTP端口(与external_url一致)- "443:443" # HTTPS端口- "2224:22" # SSH端口映射volumes:- ./config:/etc/gitlab # 配置文件- ./logs:/var/log/gitlab # 日志文件- ./data:/var/opt/gitlab # 数据文件shm_size: '256m' # 共享内存大小
关键配置说明316144:
external_url
:GitLab 访问地址,需与端口映射一致。gitlab_shell_ssh_port
:自定义 SSH 端口,避免与宿主机冲突。- 卷映射(
volumes
):持久化配置、日志和数据,防止容器重启后丢失。
三、启动 GitLab 服务
- 启动容器
docker-compose up -d
- 查看启动状态
docker-compose logs -f gitlab # 实时查看日志 docker-compose ps # 确认容器状态为 Healthy
四、访问与初始化
-
首次访问
- 浏览器输入
http://gitlab.example.com:8929
,等待服务完全启动(初次可能需 5-10 分钟)3。 - 若出现 502 错误,刷新页面或稍后重试3。
- 浏览器输入
-
设置管理员密码
- 默认用户名:
root
。 - 初始密码文件路径(24 小时后自动删除):
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
- 默认用户名:
-
登录与配置
- 登录后建议修改密码并配置邮箱、SSH 密钥等41。
- 若需中文界面:用户设置 → Preferences → Language → 简体中文36。
五、高级配置(可选)
-
HTTPS 支持
修改external_url
为https
,并在GITLAB_OMNIBUS_CONFIG
中添加 SSL 证书路径:external_url 'https://gitlab.example.com' nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt" nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"
将证书文件挂载到容器内
/etc/gitlab/ssl
目录148。 -
备份与恢复
- 手动备份:
docker exec -it gitlab gitlab-backup create
- 定时备份:通过 Crontab 或脚本自动化35。
- 手动备份:
-
性能优化
- 调整
unicorn
和sidekiq
参数(如并发数、内存限制)148:GITLAB_OMNIBUS_CONFIG: |unicorn['worker_processes'] = 4sidekiq['concurrency'] = 10
- 调整
六、常见问题
-
端口冲突
- 若宿主机 80/443 端口被占用,需修改
ports
映射(如8080:80
)143。
- 若宿主机 80/443 端口被占用,需修改
-
服务启动慢
- 首次启动需初始化数据库和组件,耐心等待或通过日志排查问题3。
-
数据迁移
- 迁移时需复制
config
、data
、logs
目录,并确保权限正确16。
- 迁移时需复制
其他安装地址:https://zhuanlan.zhihu.com/p/680598666