Docker下Gitlab安装、配置、使用详细教程

目录 原创

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

3 条评论

  • 头像
    老赵
    2020-07-06

    哥们你好,我遇到了jenkins+gitlab的问题,是否可以加您的微信呢

  • 头像
    不懂
    2020-07-20

    项目克隆中HTTP访问方式的端口不对,这个怎么改?

    • Pony
      Pony
      2020-07-21

      修改gitlab的配置文件,在此地址后边添加http访问的端口号【external_url ‘http://gitlab.orcy.net’】,默认端口访问不需要添加端口号。

发表评论

电子邮件地址不会被公开。 必填项已用*标注