Docker容器中Gitlab安装、配置、使用详细教程-下一朵云

1.拉取Gitlab镜像

docker pull gitlab/gitlab-ce

gitlab-ce为社区版本,后面不填写版本则默认pull最新latest版本

Docker容器中Gitlab安装、配置、使用详细教程-下一朵云
图1 拉取镜像

2.运行Gitlab镜像

运行容器前,新建好/home/gitlab/config 、log、data三个文件夹,运行容器时将GitLab 的配置 (config) 、 日志 (log) 、数据 (data) 放到宿主机的/home/gitlab目录下。并且确认宿主机8023、8020、8022端口未被占用,映射容器的443、80、22端口。

docker run -d  \
-p 8023:443 \
-p 8020:80 \
-p 8022:22 \
--name gitlab \
--restart always \
-v /home/gitlab/config:/etc/gitlab \
-v /home/gitlab/logs:/var/log/gitlab \
-v /home/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce

如果宿主机80、443端口均可以被访问,内网使用或者购买云服务器直接映射80、443即可

-p 443:443 \
-p 80:80 \
-p 222:22 \

运行成功,会返回一串字符

Docker容器中Gitlab安装、配置、使用详细教程-下一朵云
图2 容器创建成功

3.修改Gitlab配置

按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机路径:/home/gitlab/config/gitlab.rb)

vi /home/gitlab/config/gitlab.rb
# 配置http协议所使用的访问地址,不加端口号
external_url 'http://gitlab.orcy.net'

# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = 'gitlab.orcy.net'
# 此端口是run时22端口映射的8022端口
gitlab_rails['gitlab_shell_ssh_port'] = 8022 
#保存配置文件并退出
:wq 

4.进入gitlab容器内,重载配置,重启容器

docker exec -it gitlab /bin/bash  进去gitlab容器的命令
gitlab-ctl reconfigure  重置gitlab客户端的命令

由于我们运行是使用数据卷参数进行运行的,宿主机的gitlab.rb文件修改了,gitlab的文件会跟着改,但是容器的文件不会跟着生效,必须要进去容器里面进行命令执行,重置配置文件比较耗费时间,需要耐心等待

docker restart gitlab

5.打开Gitlab

确认使用的域名已经正确解析到对应的IP地址,打开浏览器,输入http://gitlab.orcy.net:8020,如果出现了此界面无问题了,首次登录需要设置root密码

Docker容器中Gitlab安装、配置、使用详细教程-下一朵云
图3 Gitlab登录页面

注意:如果此处出现502报错,请检查服务器CPU、内存是否占用满了。502很大程度上是因为CPU、内存耗尽导致!

Docker容器中Gitlab安装、配置、使用详细教程-下一朵云
图4 gitlab报错502

6.创建一个项目

下面我们就可以新建一个项目了,点击【Create a project】

Docker容器中Gitlab安装、配置、使用详细教程-下一朵云
图5 创建项目
Docker容器中Gitlab安装、配置、使用详细教程-下一朵云
图6 填写项目信息

创建完成后:

Docker容器中Gitlab安装、配置、使用详细教程-下一朵云
图7 成功创建项目

检查克隆项目的ssh地址是我们使用的域名和之前映射出去的端口

至此!基于docker的gitlab部署已经完成!

*7.常用的几个Gitlab命令

# 重新应用gitlab的配置
gitlab-ctl reconfigure
 
# 重启gitlab服务
gitlab-ctl restart
 
# 查看gitlab运行状态
gitlab-ctl status
 
#停止gitlab服务
gitlab-ctl stop
 
# 查看gitlab运行日志
gitlab-ctl tail
 
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sideki
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。