利用GitLab Docker images安装GitLab(填坑)

作者在Docker笔记(持续更新)提到如何在Docker中安装GitLab,在此存在一个坑,作者觉得很有必要单开一篇文章单独将(希望让其他小伙伴能够通过标题搜到这篇文章,减少弯路)
想必看到这篇文章的伙伴存在一个疑惑,为什么我在external_url设置ip+port却无法访问到GitLab,如果直接设置成ip地址在项目的checkout地址一栏,其git地址却不包含端口号,导致http的checkout地址不可用。

image.png

问题的原因就出在external_url地址设置上。
GitLab默认的http访问端口号为80端口,如果想更改端口号,一般是通过docker run时设置端口映射,将80端口映射为其他端口。例如:

sudo docker run --detach \
    --hostname gitlab.example.com \
    --publish 8443:443 --publish 8080:80 --publish 8022:22 \
    --name gitlab \
    --restart always \
    --volume /srv/gitlab/config:/etc/gitlab \
    --volume /srv/gitlab/logs:/var/log/gitlab \
    --volume /srv/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest  

这里将GitLab的http端口改为8080,如果你这时修改external_url地址为http://ip:8080,那GitLab肯定访问不了,因为你已经将内部的端口号修改为8080端口了,而你通过docker run映射出来的端口号是80端口,所以不可能访问到。那该怎么办?
既然你已经将内部的端口号由80端口改为8080端口,这时候你就将容器停止并删除,但是不要将映射的配置文件删除(gitlab.rb文件),docker在删除容器的时候不会将映射的文件删除。在此运行docker run命令,如下

sudo docker run --detach \
    --hostname gitlab.example.com \
    --publish 8443:443 --publish 8080:8080 --publish 8022:22 \
    --name gitlab \
    --restart always \
    --volume /srv/gitlab/config:/etc/gitlab \
    --volume /srv/gitlab/logs:/var/log/gitlab \
    --volume /srv/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest  

注意这里映射的端口为8080端口,根据自己设置的external_url端口号进行调整

接下来就能访问GitLab了,并且在checkout检出地址栏中,http地址端口号也正确了。


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,647评论 2 56
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,566评论 0 120
  • “独自走的路要再长一些,故事才够多,来攀谈昼夜。2017的gky新年快乐~2017多走一点路吧。” 仗剑前行,要凌...
    3241e5921091阅读 261评论 0 1
  • 你想带她去看山 带她去闻海 带她去听风 带她去踏雪 想带她去凌晨三点的夜里找星星 带她去所有你想和她一起见识的这个...
    _南国阅读 300评论 0 0