使用 Docker 部署极狐 GitLab(历史记录)
适用范围:本文基于 CentOS 7 和当时的极狐 GitLab 镜像编写。新部署请使用仍受支持的操作系统,并固定 GitLab 镜像版本;不要直接把
latest用于生产环境。
近段时间升级了下家用服务器的配置,将原部署在群晖中的Gitlab部署到了新服务器中,本文记录了在CentOS7上基于docker部署极狐Gitlab的步骤。
创建CentOS7虚拟机
使用Esxi 8.0创建CentOS 7的虚拟机,该部分见文章Esxi8.0部署CentOS 7。
极狐Gitlab比较消耗内存,这里建议虚拟机内存最少设置为8G。
在CentOS7上安装docker
在CentOS 7上安装docker,该部分见文章CentOS7安装docker。
创建环境变量GITLAB_HOME
创建环境变量,方便统一管理装载卷的位置,这里将gitlab的文件持久化到/opt/gitlab-jh下:
sudo vim ~/.bash_profile |
按i进入编辑模式,将以下内容复制进去,按esc退出编辑模式,输入:wq退出编辑并保存:
export GITLAB_HOME=/opt/gitlab-jh |
创建gitlab-jh文件夹
进入opt目录 |
使用docker安装极狐Gitlab
sudo docker run --detach \ |
说明:
--publish 443:443 --publish 80:80 --publish 22222:22:由于本次虚拟机中仅安装极狐Gitlab,顾将容器的443与80端口映射到虚拟机的443与80上,但虚拟机的22端口需要在远程连接时使用,所以将容器的22端口映射到虚拟机的22222端口;--name gitlab:设置容器名称;--restart always:设置容器自动启动;--volume $GITLAB_HOME/config:/etc/gitlab:映射配置文件目录;--volume $GITLAB_HOME/data:/var/opt/gitlab:映射数据文件目录;--volume $GITLAB_HOME/logs:/var/log/gitlab:映射日志文件目录;--shm-size 256m:为容器提供共享内存;实际大小应结合并发和官方要求调整。--privileged=true:使用特权启动容器,否则容器没有权限将文件创建到宿主机目录;
查看容器状态
查看docker容器状态 |
至此 GitLab 已创建并启动。初始用户名为 root,初始密码可通过 sudo cat /opt/gitlab-jh/config/initial_root_password 查看。首次登录后应立即修改密码、创建日常管理账号,并限制该文件的读取权限。
强制使用https打开gitlab
上传SSL证书
- 创建SSL证书目录
cd /opt/gitlab-jh/config
sudo mkdir ssl - 将证书文件(
xxx.crt与xxx.key)上传至ssl目录
修改配置文件
修改gitlab.rb文件 |
可以按/后输入内容进行查找,按回车后可定位至查找内容处,然后再按i进入编辑模式,修改如下内容,修改完成后按:wq保存退出:
配置为虚拟机https地址,由于这里容器的443的端口映射到了宿主机的443端口,所以这里配置为https://虚拟机IP,若映射到了其他端口,则可以配置为https://虚拟机IP:端口号 |
配置邮件服务(这里使用QQ邮箱)
sudo vim /opt/gitlab-jh/config/gitlab.rb |
可以按/后输入内容进行查找,按回车后可定位至查找内容处,然后再按i进入编辑模式,修改如下内容,修改完成后按:wq保存退出:
gitlab_rails['smtp_enable'] = true |
不要将真实邮箱授权码写入镜像、Git 仓库或截图。建议通过部署环境的密钥管理能力注入敏感配置。