【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源(重要:使用阿里源,不然超时)
[root@localhost ~]#  yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新索引
[root@localhost ~]# yum makecache fast
#执行安装
[root@localhost ~]# yum install -y docker-ce-18.09.9
#启动docker
[root@localhost ~]# systemctl restart docker
#查看docker信息
[root@localhost ~]# docker info
#配置加速器 新增daemon.json文件,内容如下
[root@localhost docker]# vi /etc/docker/daemon.json 
{
  "registry-mirrors":["https://你自己的地址.mirror.aliyuncs.com"]
}
#重启,并查看docker信息,验证镜像地址是否改成功
[root@localhost docker]# systemctl restart docker
[root@localhost 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分钟

[root@localhost 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容器

[root@localhost]# 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配置。

  • 重建容器【不重建容器,网上也有一些帖子说直接修改配置文件,但感觉路子有点野,有兴趣的可以研究下】

    #停止运行的容器
    [root@localhost]# sudo docker stop gitlab
    #删除已经存在的容器
    [root@localhost]# sudo docker rm gitlab
    #新建容器
    [root@localhost]#  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转发配置

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值