CentOS上GitLab的容器化部署如何操作
导读:CentOS上GitLab容器化部署操作指南 一、准备工作 系统要求:确保CentOS系统为7或更高版本(推荐CentOS 8+),已更新至最新状态(sudo yum update -y)。 Docker安装: 添加Docker官方YU...
CentOS上GitLab容器化部署操作指南
一、准备工作
- 系统要求:确保CentOS系统为7或更高版本(推荐CentOS 8+),已更新至最新状态(
sudo yum update -y
)。 - Docker安装:
- 添加Docker官方YUM仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
。 - 安装Docker CE:
sudo yum install -y docker-ce docker-ce-cli containerd.io
。 - 启动并设置开机自启:
sudo systemctl start docker & & sudo systemctl enable docker
。
- 添加Docker官方YUM仓库:
- 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
。
- 下载最新版二进制文件:
二、部署GitLab容器
方式一:使用Docker Compose(推荐)
- 创建数据目录:
在宿主机上创建用于持久化存储GitLab配置、日志和数据的目录:
sudo mkdir -p /data/gitlab/{ config,logs,data}
。 - 编写
docker-compose.yml
文件:
在/data/gitlab
目录下创建docker-compose.yml
,内容如下(根据实际情况调整端口和域名):version: '3.7' 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' # 替换为实际访问地址 ports: - '80:80' # HTTP - '443:443' # HTTPS(需配置SSL) - '22:22' # SSH volumes: - '/data/gitlab/config:/etc/gitlab' - '/data/gitlab/logs:/var/log/gitlab' - '/data/gitlab/data:/var/opt/gitlab'
- 启动容器:
进入/data/gitlab
目录,执行sudo docker-compose up -d
,等待容器启动完成(可通过docker-compose logs -f
查看实时日志)。
方式二:直接使用Docker命令
- 拉取镜像:
从Docker Hub拉取最新版GitLab CE镜像:docker pull gitlab/gitlab-ce:latest
。 - 运行容器:
执行以下命令启动容器(端口和目录可根据需求调整):docker run -d \ --hostname gitlab.example.com \ # 替换为你的域名或IP --name gitlab \ --restart always \ -p 80:80 -p 443:443 -p 22:22 \ # 映射端口 -v /data/gitlab/config:/etc/gitlab \ # 配置文件卷 -v /data/gitlab/logs:/var/log/gitlab \ # 日志卷 -v /data/gitlab/data:/var/opt/gitlab \ # 数据卷 gitlab/gitlab-ce:latest
注:
--restart always
确保容器异常退出时自动重启;-v
实现数据持久化,避免容器删除后数据丢失。
三、访问与初始化配置
- 访问GitLab:
打开浏览器,输入http://< 服务器IP或域名>
(如http://192.168.1.100
),进入GitLab登录页面。 - 设置管理员密码:
首次访问需设置root
用户的初始密码(密码复杂度要求:至少8位,包含大小写字母、数字和特殊字符)。 - 登录GitLab:
使用root
账号和设置的密码登录,进入GitLab主界面。
四、后续配置(可选但重要)
- 配置HTTPS:
使用Let’s Encrypt免费获取SSL证书,提升访问安全性:- 安装Certbot:
sudo yum install -y certbot python3-certbot-nginx
。 - 获取证书:
sudo certbot --nginx -d gitlab.example.com
(替换为你的域名),按提示完成配置。 - 重启GitLab容器使配置生效:
docker-compose restart
(或docker restart gitlab
)。
- 安装Certbot:
- 修改默认端口:
若服务器80/443端口被占用,可修改docker-compose.yml
中的端口映射(如将80映射到8080):
修改后重启容器:ports: - '8080:80' # 将宿主机8080映射到容器80
docker-compose up -d
,访问时使用http://< 服务器IP或域名> :8080
。 - 配置邮件服务:
若需通过邮件发送通知(如密码重置),编辑/data/gitlab/config/gitlab.rb
文件,添加以下配置(以QQ邮箱为例):
保存后重新配置GitLab:gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.qq.com" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "your_qq@qq.com" # 替换为你的QQ邮箱 gitlab_rails['smtp_password'] = "your_smtp_code" # 替换为QQ邮箱SMTP授权码 gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['gitlab_email_from'] = "your_qq@qq.com" # 发件人邮箱 gitlab_rails['gitlab_email_domain'] = "qq.com" # 发件人域名
docker-compose exec gitlab gitlab-ctl reconfigure
,重启容器使配置生效。
五、注意事项
- 数据持久化:务必通过
-v
参数挂载配置、日志和数据目录到宿主机,避免容器删除后数据丢失。 - 资源分配:GitLab对资源要求较高,建议分配至少2核CPU、4GB内存(生产环境建议4核+8GB以上)。
- 端口冲突:若宿主机已有服务占用GitLab所需端口(80、443、22),需修改
docker-compose.yml
中的端口映射(如将80映射到8080)。 - 安全加固:生产环境中建议启用HTTPS、配置防火墙(开放必要端口)、定期更新GitLab镜像至最新版本。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS上GitLab的容器化部署如何操作
本文地址: https://pptw.com/jishu/721390.html