欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【GitLab、Jira、Confluence 单点登录实现】之 使用Docker 搭建GitLab服务

程序员文章站 2022-04-30 12:45:57
...

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

【GitLab、Jira、Confluence 单点登录实现】之 使用Docker 搭建GitLab服务
访问:http://192.168.217.4:10080/ 验证。设置密码后即可登录。默认用户为root.

5、配置Git Lab -解决 ssh 克隆地址不正确的问题

​ 因为GitLab默认的ssh端口为22,我们通过映射方式映射到宿主机的10022.所以要配置以下GitLab。

现在看下,没有端口及使用默认端口22,即从主机的22端口,这样肯定无法拉取代码。

【GitLab、Jira、Confluence 单点登录实现】之 使用Docker 搭建GitLab服务

设置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
    

    验证是否解决

【GitLab、Jira、Confluence 单点登录实现】之 使用Docker 搭建GitLab服务

遇到过的问题 WARNING: IPv4 forwarding is disabled. Networking will not work

另起一篇记录了解决过程:docker容器运行正常,外网缺无法访问,先查看IPV4转发配置

相关标签: DevOps