一个计算机技术爱好者与学习者

0%

好好学GitLab:使用Docker安装配置GitLab

1. 前言

《好好学GitLab:CentOS7安装配置GitLab》一文中学习了GitLab的安装方法,如果使用Docker来安装GitLab,可以简单很多。

参考文档:

2. 安装Docker

Docker安装方法参考文档《好好学Docker:Docker入门》

3. 安装GitLab

1、登录dockerhub查看可选的GitLab Docker images

2、下载gitlab镜像(以16.3.6-ce.0版本为例,这是一个Security Release版本)

1
docker pull gitlab/gitlab-ce:16.3.6-ce.0

3、启动gitlab服务

1
2
3
4
5
6
7
8
9
10
docker run --name vk-gitlab -d \
--restart always \
--hostname gitlab.voidking.com \
--shm-size 256m \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.voidking.com'" \
-p 443:443 -p 80:80 -p 3422:22 \
-v /opt/gitlab/config:/etc/gitlab \
-v /opt/gitlab/logs:/var/log/gitlab \
-v /opt/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:16.3.6-ce.0

参数说明:

  • 命名容器为vk-gitlab,后台运行
  • 设置容器意外关闭自动重启
  • 设置容器名为 gitlab.voidking.com
  • 容器的 /dev/shm 分区大小是256m,而不是默认的64m,用作进程之间共享内存的接口
  • 设置gitlab的对外url为 http://gitlab.voidking.com
  • 映射宿主机80、443、3422端口到容器80、443、22端口
  • 挂载三个宿主机目录到容器,以便持久化数据

启动大概需要5到10分钟,请耐心等待。

4、验证安装

1
2
docker ps
docker logs vk-gitlab

gitlab启动正常的话就可以看到vk-gitlab容器。
如果启动失败,通过查看启动日志,排查启动失败原因并解决。

5、查看gitlab root用户密码

1
docker exec -it vk-gitlab grep 'Password:' /etc/gitlab/initial_root_password

PS:如果是低版本的gitlab,比如 12.6.1-ce.0 ,那么不需要这个步骤,在首次访问dashboard时会提示修改密码。

4. 放通外部访问

对外开放端口

1
2
3
4
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --add-port=3422/tcp --permanent
systemctl reload firewalld

或者关闭防火墙

1
systemctl stop firewalld

5. 测试GitLab

5.1. 测试访问GitLab端口

宿主机上访问gitlab端口

1
2
3
nc -zv localhost 80
nc -zv localhost 443
nc -zv localhost 3422

外部主机访问gitlab端口(已知Docker宿主机IP为 192.168.56.130 )

1
2
3
nc -zv 192.168.56.130 80
nc -zv 192.168.56.130 443
nc -zv 192.168.56.130 3422

5.2. 测试访问GitLab服务

宿主机上访问gitlab服务:curl localhost -L
外部主机浏览器访问gitlab服务:http://192.168.56.130

6. 配置GitLab

6.1. 配置对外展示的URL

1、配置url和ssh协议端口
vim /opt/gitlab/config/gitlab.rb,如下修改:

1
2
3
external_url 'http://gitlab.voidking.com'
gitlab_rails['gitlab_ssh_host'] = 'gitlab.voidking.com'
gitlab_rails['gitlab_shell_ssh_port'] = 3422

gitlab.rb 配置中又涉及到了 external_url ,这里的优先级高于 docker run 时配置的环境变量的优先级。

该配置的效果是,当用户在gitlab项目页面点击Clone时,Clone with HTTPClone with SSH的结果类似于:

1
2
http://gitlab.voidking.com/root/voidking.git
ssh://git@gitlab.voidking.com:3422/root/voidking.git

2、重启vk-gitlab

1
docker restart vk-gitlab

6.2. 禁用更新提醒

管理员登录dashboard后,无论点击什么页面,都会跳出一个更新提示框:

1
Important notice - Critical security release

禁用方法:Admin Area -> Settings -> Metrics and Profiling -> Usage Statistics -> turn off the option for Enable version check

参考文档:How to disable update notifications for admin which aren’t possible to update at all?

6.3. http域名访问

6.3.1. 单机配置hosts

修改同一局域网内某台设备的 /etc/hosts,添加:

1
192.168.56.103  gitlab.voidking.com

然后,这台设备就可以通过域名 http://gitlab.voidking.com 访问gitlab服务了。

6.3.2. 本地DNS配置域名解析

本地DNS配置域名解析:gitlab.voidking.com -> 192.168.56.103
然后,同一局域网内所有使用本地DNS的设备就可以通过域名 http://gitlab.voidking.com 访问gitlab服务了。

6.4. https域名访问

参考《好好学GitLab:CentOS7安装配置GitLab》添加SSL一节,生成证书,配置gitlab使用证书,并且添加到浏览器。

7. 使用GitLab

1、创建项目
Create a Project,Project name填入voidking,选择Public,勾选Initialize repository with a README。

2、clone项目

1
2
git config --global http.sslVerify false
git clone https://gitlab.voidking.com/root/voidking.git

3、上传代码

1
2
3
git add .
git commit -m "do something"
git push

8. 修改root密码

参考文档:

1、进入rails控制台

1
2
docker exec -it vk-gitlab /bin/bash
gitlab-rails console

2、重置密码

1
2
3
4
5
6
user = User.find(1)
newpassword='xxx'
user.password=newpassword
user.password_confirmation=newpassword
user.save!
exit
  • 本文作者: 好好学习的郝
  • 原文链接: https://www.voidking.com/dev-docker-gitlab/
  • 版权声明: 本文采用 BY-NC-SA 许可协议,转载请注明出处!源站会即时更新知识点并修正错误,欢迎访问~
  • 微信公众号同步更新,欢迎关注~