[NOTE] GitLab
Ubuntu Server + Docker + Gitlab 以及 Git 使用。
因为最近也接触了Docker,所以也算是练手,决定将Gitlab直接部署到docker当中
一、Docker容器安装
1 | sudo apt-get install docker-ce |
为了便于使用,修改docker镜像源
1 | sudo mkdir -p /etc/docker |
二、安装并配置gitlab-server
1 | sudo docker run --detach \ |
介绍其中的几个配置项,
—publish
告诉容器发布数据的端口,以及主机端口与容器端口之间的关系,由于GitLab接受HTTP(80), HTTPS(443)以及SSH(22)端口的消息,所以publish这一行的设置是将主机对应的端口映射到容器的端口上。如果想要设置非标准的端口(由于端口已被占用),要将主机端口放在前,容器端口放在后。
在采用这个设置之前,我将SSH设置为了2222,HTTP端口设置为了9090,并且在gitlab.rb文件中修改了相应的端口,但可能是哪个步骤有疏漏,导致GitLab页面一直显示502,这点之后会有所说明
—restart
使容器在推出后能立即重启,保证持续提供服务—volume
可以讲容器中的路径挂载到本机中,此处挂载了包括应用数据、日志以及配置文件,这样在维护中会带来一些方便
这些命令在文档中都有介绍,有足够的经验之后,完全可以在需要使用时再去查询。
三、踩坑记录(1)
由于最先开始配置GItLab时,并不想去修改默认的ssh端口22,配置如下:
1 | docker run --detach \ |
修改配置文件:
1 | vi /srv/gitlab/config/gitlab.rb |
现在看来,这显然是错误的,以我粗浅的认知,我认为应该至少应该是将publish配置为80:8888, 22:8022这样才比较合理,不知我所参考的博客的原作者是怎么成功的,反正我这样是一直显示502,在查看log文件之后
可以明显的看到问题出在连接端口上,此后通过docker命令停止并删除改容器,重新配置一个新的容器。
1 | sudo docker stop gitlab |
在使用默认端口之后,ssh端口会发生端口冲突的情况,可以使用vi /etc/ssh/sshd_config
文件中加入Port 26
恢复对端口的监听
四、GitLab维护
4.1 GitLab升级
1 | sudo docker stop gitlab |
可以看到,虽然移除了当前的容器,但是由于镜像依旧在本地磁盘中,且由于挂载的关系,应用数据、日志等都还在。
五、踩坑记录(2)
5.1 提交缓存超出(solved)
在我将整个博客及其编译环境全部上传gitlab时遇到了这种情况,解决方法是修改工作目录下.git
文件夹中的config文件:
1 | [http] |
5.2 无法使用GitLab内置ssh(In queue)
![Screen Shot 2019-07-27 at 11.22.08](/Users/fusidic/Documents/work/hugo/test-pages/static/img/GitLab/Screen Shot 2019-07-27 at 11.22.08.png)
尚未解决,猜想应该与git账户权限有关