Linux环境下GitLab容器化部署方案
一 环境准备与资源建议
docker --version && docker-compose --versioncurl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh && sudo usermod -aG docker $USER二 部署方式一 Docker Compose 推荐
/data/gitlab/{config,logs,data}),用于保存配置、日志与业务数据,避免容器重建导致数据丢失。docker-compose up -ddocker-compose logs -f gitlab/etc/gitlab/initial_root_password(默认 24 小时 有效),随后登录 Web 强制修改密码。firewall-cmd --add-port={80,443,22}/tcp --permanent && firewall-cmd --reload三 部署方式二 Docker Run 单容器
docker run -d --name gitlab --hostname gitlab.example.com --restart always \
-p 8443:443 -p 8080:80 -p 2222:22 \
-v /path/to/config:/etc/gitlab -v /path/to/logs:/var/log/gitlab -v /path/to/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest四 关键配置与运维要点
external_url 'http://your-domain-or-ip:port'(如启用 HTTPS 则使用 https),保存后执行 gitlab-ctl reconfigure 使配置生效。gitlab.rb 中设置 gitlab_rails['gitlab_shell_ssh_port'] = 5022,并同步更新仓库克隆地址中的 SSH 端口。gitlab.rb 中设置 gitlab_rails['time_zone'] = 'Asia/Shanghai',保持界面与任务时间一致。gitlab.rb 中启用 letsencrypt['enabled'] = true 或配置 nginx['ssl_certificate']/nginx['ssl_certificate_key'],随后 gitlab-ctl reconfigure。gitlab.rb 中配置 smtp_* 系列参数(如 smtp_enable、smtp_address、smtp_port、smtp_user_name、smtp_password、smtp_domain、smtp_starttls),完成后 gitlab-ctl reconfigure 并测试发送。docker-compose exec gitlab gitlab-rake gitlab:backup:create(默认备份至 /var/opt/gitlab/backups,可在 gitlab.rb 中调整 gitlab_rails['backup_path'])。sidekiq、unicorn/puma),执行 docker-compose exec gitlab gitlab-rake gitlab:backup:restore BACKUP=备份文件名前缀,再重启服务。docker-compose logs -f gitlab 与 GitLab 内置监控、日志收集,关注 CPU/内存/磁盘 使用与慢请求。