CentOS中GitLab容器化部署方案
一、前提条件
- 操作系统:CentOS 7或更高版本(建议使用CentOS Stream或RHEL兼容系统);
- Docker引擎:需安装并运行Docker(推荐使用Docker CE版本);
- Docker Compose(可选但推荐):用于简化多容器管理(如搭配GitLab Runner时);
- 主机资源:建议分配至少4GB内存、2核CPU及50GB以上磁盘空间(GitLab对资源消耗较大)。
二、基础部署步骤
1. 安装Docker
更新系统并安装必要依赖,添加Docker官方仓库后安装Docker CE:
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker && sudo systemctl enable docker
验证Docker安装:
docker --version # 应输出类似"Docker version 24.xx.xx"的版本信息
2. 安装Docker Compose(可选)
若需使用Docker Compose管理容器,可通过以下命令安装:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
验证安装:
docker-compose --version # 应输出类似"docker-compose version v2.24.5"的信息
3. 创建挂载目录
GitLab的数据(配置、日志、仓库)需持久化存储,避免容器删除后数据丢失。创建专用目录:
sudo mkdir -p /opt/gitlab/{config,logs,data}
sudo chown -R $USER:$USER /opt/gitlab # 授予当前用户读写权限
4. 拉取GitLab镜像
从Docker Hub拉取GitLab Community Edition(CE)最新镜像:
docker pull gitlab/gitlab-ce:latest
若需指定版本(如17.0.0),可将latest替换为对应版本号(如gitlab/gitlab-ce:17.0.0)。
5. 配置并启动GitLab容器
创建docker-compose.yml文件(或在命令行直接运行docker run),配置端口映射、卷挂载及环境变量:
方式一:使用docker-compose.yml(推荐)
version: '3.8'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always # 容器退出时自动重启
hostname: 'gitlab.example.com' # 替换为你的域名或公网IP
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com' # 外部访问URL(需与hostname一致)
ports:
- '80:80' # HTTP端口
- '443:443' # HTTPS端口(需配置SSL证书后启用)
- '22:22' # SSH端口(默认22,若冲突可修改为其他端口)
volumes:
- '/opt/gitlab/config:/etc/gitlab' # 配置文件目录
- '/opt/gitlab/logs:/var/log/gitlab' # 日志文件目录
- '/opt/gitlab/data:/var/opt/gitlab' # 数据目录(仓库、数据库等)
方式二:使用docker run命令(直接运行)
docker run -d \
--name gitlab \
--restart always \
--hostname gitlab.example.com \
-p 80:80 -p 443:443 -p 22:22 \
-v /opt/gitlab/config:/etc/gitlab \
-v /opt/gitlab/logs:/var/log/gitlab \
-v /opt/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
6. 访问GitLab
启动容器后,等待1-2分钟(GitLab初始化需时间),在浏览器中访问http://gitlab.example.com(替换为你的实际域名/IP)。首次访问需设置root用户初始密码(密码长度需≥8位),设置完成后使用root账号登录。
三、常见问题解决
1. 端口冲突
若主机80、443或22端口已被占用,可修改docker-compose.yml中的ports配置(如将80:80改为8080:80),或停止占用端口的服务:
sudo netstat -tulnp | grep :80 # 查看80端口占用进程
sudo systemctl stop nginx # 示例:停止nginx服务
2. 初始化超时
若访问时出现502错误,可能是GitLab初始化未完成。可通过以下命令查看容器日志,确认初始化进度:
docker logs -f gitlab # 实时查看gitlab容器日志
若日志显示“Initialization complete”,说明初始化完成,可刷新页面重试。
3. 配置修改
若需修改GitLab配置(如external_url、SSH端口),可编辑容器内的/etc/gitlab/gitlab.rb文件:
docker exec -it gitlab /bin/bash # 进入gitlab容器
vim /etc/gitlab/gitlab.rb # 编辑配置文件(如修改external_url)
exit # 退出容器
docker exec -it gitlab gitlab-ctl reconfigure # 重新加载配置
docker exec -it gitlab gitlab-ctl restart # 重启gitlab服务
四、后续优化建议
- 配置SSL证书:使用Let’s Encrypt免费获取SSL证书,修改
external_url为https://gitlab.example.com,并配置Nginx反向代理(或使用GitLab内置的Nginx); - 资源限制:在
docker-compose.yml中添加mem_limit、cpu_shares等参数,限制GitLab容器使用的资源(如mem_limit: 4g); - 备份策略:定期备份
/opt/gitlab/data目录(包含仓库、数据库等核心数据),可使用rsync或tar命令; - 监控告警:部署Prometheus+Grafana监控GitLab容器的CPU、内存、磁盘使用情况,设置告警阈值。
通过以上步骤,即可在CentOS上完成GitLab的容器化部署。容器化部署具有轻量、灵活、易迁移的特点,适合快速搭建GitLab实例或测试环境。生产环境中建议结合Kubernetes或Docker Swarm进行编排,提升可用性。
以上就是关于“CentOS中GitLab的容器化部署方案”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm