Debian系统GitLab容器化部署方案(基于Docker)
Debian系统需先安装Docker作为容器运行环境。执行以下命令:
sudo apt update && sudo apt install -y docker.io
sudo systemctl start docker && sudo systemctl enable docker
验证安装:docker --version(显示Docker版本即成功)。
Docker Compose可简化多容器应用的管理。执行以下命令:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
验证安装:docker-compose --version(显示Compose版本即成功)。
创建用于存放GitLab配置、日志和数据的目录:
sudo mkdir -p /opt/gitlab/{config,logs,data}
docker-compose.yml文件在项目目录中创建docker-compose.yml,内容如下(根据需求调整):
version: '3.7'
services:
gitlab:
image: gitlab/gitlab-ce:latest # 使用GitLab社区版最新镜像
container_name: gitlab
restart: always # 开机自启
hostname: 'gitlab.example.com' # 替换为你的域名或IP
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com' # 替换为你的访问URL
gitlab_rails['lfs_enabled'] = true # 启用Git LFS(大文件存储)
gitlab_rails['gitlab_shell_ssh_port'] = 2222 # 自定义SSH端口(可选)
ports:
- '80:80' # HTTP访问
- '443:443' # HTTPS访问(需配置SSL)
- '2222:2222' # SSH访问(若修改了端口)
volumes:
- '/opt/gitlab/config:/etc/gitlab' # 配置文件卷
- '/opt/gitlab/logs:/var/log/gitlab' # 日志文件卷
- '/opt/gitlab/data:/var/opt/gitlab' # 数据文件卷(核心数据)
在docker-compose.yml所在目录执行:
sudo docker-compose up -d
该命令会自动下载GitLab镜像(若未下载)并启动容器。
打开浏览器,输入http://gitlab.example.com(替换为你的external_url),进入GitLab初始化页面。
首次访问时,系统会提示设置root管理员账户的密码(密码长度需≥8位)。设置完成后,使用root账号登录GitLab后台。
登录后,检查以下配置是否生效:
external_url);gitlab_shell_ssh_port,需通过ssh -p 2222 root@gitlab.example.com测试);为提升安全性,建议使用Let’s Encrypt免费证书。可通过Certbot工具实现:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d gitlab.example.com # 替换为你的域名
Certbot会自动配置Nginx反向代理并申请证书,完成后GitLab会自动跳转至HTTPS。
若需使用GitLab的邮件通知功能(如密码重置、合并请求通知),需编辑/opt/gitlab/config/gitlab.rb文件,添加SMTP配置:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = 'smtp.example.com' # 邮件服务器地址
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = 'your_email@example.com'
gitlab_rails['smtp_password'] = 'your_password'
gitlab_rails['smtp_domain'] = 'example.com'
gitlab_rails['smtp_authentication'] = 'login'
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
修改后重启GitLab使配置生效:sudo docker-compose restart gitlab。
GitLab数据存储在/opt/gitlab/data目录中,可通过定期备份该目录实现数据保护。例如,使用rsync命令备份到远程服务器:
rsync -avz /opt/gitlab/data user@backup-server:/path/to/backup/
恢复时,将备份数据复制回/opt/gitlab/data目录,并重启GitLab容器即可。
docker-compose.yml中的ports配置,避免冲突;volumes配置正确,避免容器删除后数据丢失;docker-compose pull)和Docker版本,修复安全漏洞。