Gitlab容器化部署

上一篇讲了Git的操作和管理,我们在Github上也试着进行了Git的操作以及Git仓库的管理。但是我们很多的工作不方便公布到Github上,那如何搭建自己的Git远程服务给自己或者团队内部使用呢?为了免去本地安装配置Git繁琐,我们可以通过容器的方式来部署。

第一步:安装docker引擎

我们这里使用centos7.5作为容器宿主机操作系统。

首先卸载centos7.5自带的旧版本docker引擎:

$sudo yum remove docker \\
          docker-client \\
          docker-client-latest \\
          docker-common \\
          docker-latest \\
          docker-latest-logrotate \\
          docker-logrotate \\
          docker-selinux \\
          docker-engine-selinux \\
          docker-engine

安装 container-selinux ,这个rpm包不在基础安装包中,它是EPEL源中的一个组件,可从阿里、清华、网易等镜像站下载,目前最新版为2.74。

$ wget https://mirrors.aliyun.com/centos/7/extras/x86_64/Packages/container-selinux-2.74-1.el7.noarch.rpm
$ sudo yum install container-selinux-2.74-1.el7.noarch.rpm

安装指定版本的docker引擎。可以在国内各开源镜像站查找docker-ce,找到对应版本下载安装,这里选取docker-ce-18.09.2版本进行安装。

$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-18.09.2-3.el7.x86_64.rpm
$ sudo yum install docker-ce-18.09.2-3.el7.x86_64.rpm

安装成功。使用如下命令开启启动容器。

$ sudo systemctl enable docker
$ sudo systemctl start docker
# 查看容器版本
$ sudo docker version

第二步:安装配置gitlab镜像

当然我们可以自己制作gitlab镜像。为了方便起见这里使用dockerHub中的Gitlab官方的社区版容器镜像:

$ docker search gitlab
    NAME         DESCRIPTION                 STARS       OFFICIAL   AUTOMATED
gitlab/gitlab-ce   GitLab Community Edition…   2457                     [OK]

拉取星数最多的镜像:

$ docker pull gitlab/gitlab-ce

在dockerHub中查看Gitlab容器的Dockerfile 查看需要挂载的文件目录有:

/etc/gitlab   配置文件
/var/log/gitlab   日志
/var/opt/gitlab   数据文件

配置宿主机路由转发:

$ vi /etc/sysctl.conf
* net.ipv4.ip_forward = 1
$ sysctl -p

或者运行:

sysctl -w net.ipv4.ip_forward=1 

运行容器(本次启用是为了生成配置文件。)

$ docker run -d \\
  -h gitlab.nero.com \\
  -p 80:80 \\
  --name gitlab-t1 \\
  -v /root/gitlab/config:/etc/gitlab \\
  -v /root/gitlab/logs:/var/log/gitlab \\
  -v /root/gitlab/data:/var/opt/gitlab \\
  gitlab/gitlab-ce

进入 /root/gitlab/config  修改配置文件 gitlab.rb,查找external_url,修改为

# external_url \'GENERATED_EXTERNAL_URL\'
external_url \'http://gitlab.nero.com:10801\'

修改并保存之后,删除该容器:

$ docker rm -f gitlab-t1

修改宿主机 /etc/hosts 文件,添加一行:

192.168.220.129  gitlab.nero.com
# 其中 192.168.220.129 为宿主机IP,域名可以自定义。

指定端口并启动新容器:

$ docker run -d \\
  -h gitlab.nero.com \\
  -p 10801:10801 \\
  -p 10802:22 \\
  -p 10803:443 \\
  --name gitlab \\
  --restart unless-stopped \\
  -v /root/gitlab/config:/etc/gitlab \\
  -v /root/gitlab/logs:/var/log/gitlab \\
  -v /root/gitlab/data:/var/opt/gitlab \\
  gitlab/gitlab-ce

运行成功。

在浏览器页面中输入URL:

http://192.168.220.129:10801
# IP 为宿主机IP

成功访问搭建的gitlab服务结果如下:

Gitlab容器化部署

第三步:配置gitlab并上传代码

默认用户为root ,设置完成密码之后就可以登录了,然后点击上面菜单中的\”小扳手\”图标创建用户。

Gitlab容器化部署

使用新用户登录:

Gitlab容器化部署

在gitlab中新建group

Gitlab容器化部署

新建project

Gitlab容器化部署

配置ssh key

Gitlab容器化部署

配置宿主机环境变量 。

$ vi ~/.bash_profile
  * GIT_SSH_COMMAND=\"ssh -p 10802\"
$ source ~/.bash_profile
# 其中 10802 端口为启动容器命令时映射 22的端口

如果使用ssh key无法git clone,可以参考如下命令:

GIT_TRACE=1 GIT_SSH_COMMAND=\"ssh -p 10802\" git clone git@gitlab.nero.com:nexusim/skdlf.git

点击进入project中,按照提示完成git push操作。

执行命令如下:

$ cd existing_folder
$ git init
$ git remote add origin git@gitlab.nero.com:nexusim/proname2.git
$ git add .
$ git commit -m \"Initial commit\"
$ git push -u origin master

最后完成代码上传。

工欲善其事必先利其器,完成了Git远程服务的搭建,我们就有了有力的CI利器,为我们的持续集成的工作铺平了道路。

原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/33468.html

(0)
EBCloud的头像EBCloud
上一篇 2024年4月2日 下午3:28
下一篇 2024年4月2日 下午3:28

相关推荐

  • 云端游戏服务器如何选择?

    云端游戏服务器,随着互联网技术的发展,已经成为了游戏行业的新宠。那么什么是云端游戏服务器?它有哪些优势?适用于哪些场景?如何选择适合自己的云端游戏服务器?这些问题都是我们需要了解的…

    行业资讯 2024年3月30日
    0
  • 淄博seo技术学习指南

    想要在淄博这片竞争激烈的市场中获得一席之地,SEO技术是必不可少的利器。但是,SEO技术又是什么?它为什么如此重要?如何学习才能掌握它?如果你也有这些疑问,那么就跟随我一起来探索淄…

    行业资讯 2024年4月20日
    0
  • 如何防止云服务器挂黑链?

    云服务器是当今互联网时代必不可少的基础设施,它为我们提供了高效稳定的服务。然而,随着其使用量的增加,云服务器遭遇黑链攻击的情况也越来越多。那么,什么是黑链?它又对云服务器有何影响?…

    行业资讯 2024年3月26日
    0
  • 宝塔面板进不去了,宝塔面板无法打开

    宝塔面板打不开?这是所有使用宝塔面板的站长都可能遇到的问题。随着互联网行业的发展,宝塔面板作为优秀的服务器管理工具,受到越来越多网站管理员的青睐。然而,有时人们会发现塔板打不开,这…

    行业资讯 2024年5月12日
    0

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注