【GitLab、Jira、Confluence 单点登录实现】之 使用Docker 搭建GitLab服务
1、安装操作系统
下载最新系统:CentOS 7.7 CentOS-7-x86_64-DVD-1908.iso
2、设置网络,采用NAT,虚拟机固定IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
PV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=c96bc909-188e-ec64-3a96-6a90982b08ad
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.217.4
NETMASK=255.255.255.0
GATEWAY=192.168.217.2
DNS1=114.114.114.114
DNS2=8.8.8.8
注意:此处耽误很多时间解决网络问题(虚拟机与主机、虚拟机与虚拟机可以通)。就是因为GATEWAY 写错了一个字名,耽误了2个多小时查找问题。
3、安装Docker
因为后续计划使用rancher 和 k8s,所以安装制定版本 18.09.9
版本选择依据:https://rancher.com/docs/rancher/v1.6/en/hosts/#supported-docker-versions
#设置yum源(重要:使用阿里源,不然超时)
[aaa@qq.com ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新索引
[aaa@qq.com ~]# yum makecache fast
#执行安装
[aaa@qq.com ~]# yum install -y docker-ce-18.09.9
#启动docker
[aaa@qq.com ~]# systemctl restart docker
#查看docker信息
[aaa@qq.com ~]# docker info
#配置加速器 新增daemon.json文件,内容如下
[aaa@qq.com docker]# vi /etc/docker/daemon.json
{
"registry-mirrors":["https://3r3lw4z9.mirror.aliyuncs.com"]
}
#重启,并查看docker信息,验证镜像地址是否改成功
[aaa@qq.com docker]# systemctl restart docker
[aaa@qq.com docker]# docker info
4、安装GitLab
参考文档:https://docs.gitlab.com/omnibus/docker/
注意:1、开发环境重启策略配置为no,生产环境可以配置为always或者 on-failure:3
2、虚拟机内容至少为3G,之前配置1G,GitLab启动不起来。【此处有个坑,后面填】
docker run -d -p 10443:443 -p 10080:80 -p 10022:22 \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/logs:/var/log/gitlab \
-v /srv/gitlab/data:/var/opt/gitlab \
--hostname 192.168.217.4 \
--name gitlab \
--restart no \
gitlab/gitlab-ce:latest
安装完成查询运行情况.注意看status 启动时间会比较长,大约4、5分钟
[aaa@qq.com docker]# docker p
访问:http://192.168.217.4:10080/ 验证。设置密码后即可登录。默认用户为root.
5、配置Git Lab -解决 ssh 克隆地址不正确的问题
因为GitLab默认的ssh端口为22,我们通过映射方式映射到宿主机的10022.所以要配置以下GitLab。
现在看下,没有端口及使用默认端口22,即从主机的22端口,这样肯定无法拉取代码。
设置GitLab参数
-
1、在主机上编辑/srv/gitlab/config/gitlab.rb 配置文件。【路径看容器启动时候的-v参数】gitlab_rails[‘gitlab_shell_ssh_port’] = 10022 #修改ssh端口,值参考容器启动时映射到容器22端口的主机端口
也可以进入容器(docker exec -it gitlab /bin/bash ),直接 vi /etc/gitlab/gitlab.rb,然后设置参数。与上面效果一样。
-
2、重启GitLab容器
[aaa@qq.com]# docker restart gitlab
6、配置Git Lab -解决http 克隆地址不正确的问题。
发现问题再配置,已经很麻烦啦。应该在启动的时候考虑到这个问题。 【填前面的坑,http的访问地址内外要保持一致】填坑开始。
PS:此问题是在进行Jira与GitLab集成时候,发现jira总是无法拉取代码,排查问题时发现的。说明jira拉取代码是通过http方式进行的(好像废话,也没有配置ssh公钥啊)。
-
修改配置 external_url,注意要带着http~
与修改ssh端口操作类似。vi /etc/gitlab/gitlab.rb
# For HTTP external_url "http://192.168.217.4:10080" or # For HTTPS (notice the https) external_url "https://192.168.217.4:10080"
内部gitlab是使用nginx提供服务,监听端口默认从external_url拉取。所以不用特意去修改nginx配置。
-
重建容器【不重建容器,网上也有一些帖子说直接修改配置文件,但感觉路子有点野,有兴趣的可以研究下】
#停止运行的容器 [aaa@qq.com]# sudo docker stop gitlab #删除已经存在的容器 [aaa@qq.com]# sudo docker rm gitlab #新建容器 [aaa@qq.com]# docker run -d -p 10080:10080 -p 10022:22 -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v /srv/gitlab/data:/var/opt/gitlab --hostname 192.168.217.4 --name gitlab --restart no gitlab/gitlab-ce:latest
验证是否解决
遇到过的问题 WARNING: IPv4 forwarding is disabled. Networking will not work
另起一篇记录了解决过程:docker容器运行正常,外网缺无法访问,先查看IPV4转发配置
上一篇: 动态图片,具有魔性的搞笑gif图
下一篇: 内涵图片,可以开发智利的搞笑图片