Linux下GitLab如何进行容器化
导读:Linux下GitLab容器化实践指南 一 准备与规划 安装并启动 Docker(检查:docker --version),可选安装 Docker Compose 以简化多容器管理。 规划目录与端口:为持久化创建目录 /data/gitl...
Linux下GitLab容器化实践指南
一 准备与规划
- 安装并启动 Docker(检查:docker --version),可选安装 Docker Compose 以简化多容器管理。
- 规划目录与端口:为持久化创建目录 /data/gitlab/{ config,logs,data} ;为避免与宿主机 22 端口冲突,可将容器 22 映射到宿主机的 5022 等高位端口;HTTP/HTTPS 分别映射 80/443 或自定义高位端口(如 5480/5443)。
- 资源建议:为容器设置 –shm-size 256m 或更高,避免运行期内存争用;生产环境建议使用固定版本镜像(如 gitlab/gitlab-ce:17.4.5-ce.0),而非 always latest。
二 部署方式
- 方式一 Docker Compose(推荐)
- 编排文件要点:使用官方镜像(CE 或 EE),声明宿主机端口映射(如 5480:80、5443:443、5022:22),挂载三大卷(/etc/gitlab、/var/log/gitlab、/var/opt/gitlab),设置 restart: always 与 shm_size。
- 启动与初始化:docker-compose up -d 后台启动;首次获取初始 root 密码:docker exec -it gitlab cat /etc/gitlab/initial_root_password;登录 Web 后按需完善管理员信息。
- 方式二 docker run 直接运行
- 关键参数:–hostname 指定实例域名;-p 发布 80/443/22 或自定义高位端口;-v 挂载三大卷;–restart always;首次启动后同样通过 /etc/gitlab/initial_root_password 获取初始密码。
三 关键配置
- 外部访问地址:编辑 /etc/gitlab/gitlab.rb,设置 external_url ‘http://your-domain-or-ip:port’;如改用非标准端口,URL 中需显式包含端口。
- 重新配置与重启:每次修改 gitlab.rb 后执行 gitlab-ctl reconfigure 使配置生效;必要时 gitlab-ctl restart。
- 邮件通知 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_email_from = “your_email@example.com”
- 预配置方式:在 docker run 中使用环境变量 GITLAB_OMNIBUS_CONFIG 注入 gitlab.rb 配置(不会写入文件,容器启动时评估),便于无侵入初始化。
四 升级与备份
- 升级流程(Compose 场景)
- 在 compose 目录执行:docker-compose down;docker pull gitlab/gitlab-ce:latest(或指定目标版本);docker-compose up -d。数据卷保持不变,完成版本切换。
- 备份与恢复
- 备份:docker exec -it gitlab gitlab-backup create(备份文件默认位于 /var/opt/gitlab/backups,宿主机对应挂载目录)。
- 恢复:将备份 tar 放置到宿主机的 /data/gitlab/data/backups,进入容器执行:gitlab-backup restore BACKUP=timestamp;随后 gitlab-ctl reconfigure 并重启。
五 运维与安全要点
- 防火墙与端口:开放 HTTP/HTTPS(如 80/443 或 5480/5443)与 SSH(如 5022);云服务器安全组同步放行。
- SELinux 场景:挂载卷添加 :Z 标签(如 /srv/gitlab/config:/etc/gitlab:Z),避免权限问题。
- 日志与排障:查看容器日志 docker logs -f gitlab;进入容器排查 gitlab-ctl status、reconfigure 输出。
- 首次安全:登录后立即修改 root 密码,按需关闭公开注册、限制项目创建权限,启用 HTTPS 与强密码策略。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux下GitLab如何进行容器化
本文地址: https://pptw.com/jishu/777807.html
