1.拉取Gitlab镜像
docker pull gitlab/gitlab-ce
gitlab-ce为社区版本,后面不填写版本则默认pull最新latest版本
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 \
运行成功,会返回一串字符
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密码
注意:如果此处出现502报错,请检查服务器CPU、内存是否占用满了。502很大程度上是因为CPU、内存耗尽导致!
6.创建一个项目
下面我们就可以新建一个项目了,点击【Create a project】
创建完成后:
检查克隆项目的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
评论(0)