docker + gitlab

我们的gitlab是部署在docker容器里面的,对于开发团队来说是一个性价比很高的操作,也是很多人选择

背景

gitlab下载地址复制后总是手动加一下端口号,对使用者来说不友好,对流水线构建来讲更是灾难,因为流水线地址就是拉去的项目上显示上这个地址,所以,还是很有必要改成实际地址的。

gitlab 更改端口号

话不多说,进入xshell进入环境

  • docker ps 查看所有运行中的容器
  • docker exec -it 容器ID或者容器名 bash 进入容器中
  • cd etc/gitlab/ 进入gitlab目录
  • vim gitlab.rb 修改gitlab文件

按照网上的说法将
external_url 'http://127.0.0.1' 改为 external_url 'http://127.0.0.1:8888'
然后 docker restart 容器ID或者容器名 进行重启

发现gitlab地址打不开了

修改docker端口映射

仔细思考发现这中间是有问题的,这个问题就是docker有端口映射:本来是容器80端口映射到主机的8888端口,现在我把gitlab配置文件中的80端口改成8888端口了,就找不到容器的80端口了,所以页面就打不开了

修改容器hostconfig.json

那好办,把docker端口映射也改了呗,但这个不是那么容易的,网上的资料也是鱼龙混杂,经过筛选我找到了相对靠谱的方案,修改当前容器的 hostconfig.json 文件

  • 关闭docker systemctl stop docker

  • 找到容器id docker ps

  • 进入容器的资源地址 cd /var/lib/docker/containers

  • 进入与容器id匹配的文件夹

  • 修改容器中的 hostconfig.json 文件

    "PortBindings": {
      "22/tcp": [
        {
          "HostIp": "",
          "HostPort": "8222"
        }
      ],
      "443/tcp": [
        {
          "HostIp": "",
          "HostPort": "8443"
        }
      ],
      "80/tcp": [
        {
          "HostIp": "",
          "HostPort": "8888"
        }
      ]
    },
    

    80/tcp改为 8888/tcp 应该就可以了吧

然后systemctl restart docker重启docker,docker ps查看情况,心底一凉发现没有相关8888 => 8888的端口映射信息,重启完成之后,果然也打不开页面

修改容器config

最终也是查阅了大量资料,才得知,修改一个hostconfig.json是不够,还要修改容器的config.v2.json文件,增加对8888端口的暴露

  • vim config.v2.json
  • 找到 ExposePorts
  • 添加 "8888/tcp": {}

保存,退出,重启docker,果然端口映射信息也出现了,再打开gitlab的网址,网页也能打开了,查看下载地址,也加上了端口号,运行了流水线,执行完了构建命令

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐