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 | docker run --name vk-gitlab -d \ |
参数说明:
- 命名容器为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 | docker ps |
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 | firewall-cmd --add-port=80/tcp --permanent |
或者关闭防火墙
1 | systemctl stop firewalld |
5. 测试GitLab
5.1. 测试访问GitLab端口
宿主机上访问gitlab端口
1 | nc -zv localhost 80 |
外部主机访问gitlab端口(已知Docker宿主机IP为 192.168.56.130 )
1 | nc -zv 192.168.56.130 80 |
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 | external_url 'http://gitlab.voidking.com' |
gitlab.rb 配置中又涉及到了 external_url ,这里的优先级高于 docker run 时配置的环境变量的优先级。
该配置的效果是,当用户在gitlab项目页面点击Clone时,Clone with HTTP
和Clone with SSH
的结果类似于:
1 | http://gitlab.voidking.com/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 | git config --global http.sslVerify false |
3、上传代码
1 | git add . |
8. 修改root密码
参考文档:
1、进入rails控制台
1 | docker exec -it vk-gitlab /bin/bash |
2、重置密码
1 | user = User.find(1) |