GitLab能通过ssh克隆无法通过http克隆,也无法进行流水线,提示port 80: Connection refused
问题记录:VM-Ubuntu20.04刚开始时使用NAT模式连接,后来改成桥接模式,改完之后原来使用docker启动的gitlab服务无法克隆,一直提示:fatal...没有远程库什么的,没解决后来删除映射目录和容器、镜像,重新启动了新的容器,配置后可以进行ssh克隆但是无法通过http克隆,进行gitlab-ci流水线时提示Failed to connect to 192.168.xx.83 port 80: Connection refused
通过尝试使用命令:git clone http://192.168.1.83/liutaiqiang/test.git 无法克隆提示:Failed to connect to 192.168.xx.83 port 80: Connection refused
通过尝试使用命令:git clone http://192.168.1.83:9001/liutaiqiang/test.git 可以进行克隆,在/srv/gitlab/data/gitlab-rails/etc下修改gitlab.yml把端口80改为9001后重启gitlab服务,又会变回80端口
通过以下方式进行修改,解决了问题
自定义使用的端口
查看容器的ID
wmg@debian:~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1132de0d1960 gitlab/gitlab-ce:latest "/assets/wrapper" 19 hours ago Up 2 minutes (healthy) 80/tcp, 443/tcp, 0.0.0.0:8081->8081/tcp, 0.0.0.0:10022->22/tcp gitlab
记住CONTAINER ID
在做操作之前,为了防止意外,先将容器和docker停了
docker stop gitlab // 停止容器,gitlab是容器的名字 systemctl stop docker // 停止docker
我们需要将http的端口改为访问9001,同时在克隆的时候的地址是对的,gitlab的ssh的端口改为宿主机的8022。
修改宿主机的 /var/lib/docker/containers/容器ID/ 目录下的config.v2.json,hostconfig.json文件
root@debian:~# cd /var/lib/docker/containers/1132de0d1960e1049a3f1f014b2ba215442a6c7f23f4983b324e055306822c52/ root@debian:/var/lib/docker/containers/1132de0d1960e1049a3f1f014b2ba215442a6c7f23f4983b324e055306822c52# ls 1132de0d1960e1049a3f1f014b2ba215442a6c7f23f4983b324e055306822c52-json.log checkpoints config.v2.json hostconfig.json hostname hosts mounts resolv.conf resolv.conf.hash
config.v2.json
hostconfig.json
Tips:使用vim编辑是如果没有格式化的话,可读性会非常差,我是把文件复制到本地用notepad++改的
修改容器内的gitlab配置文件/etc/gitlab/gitlab.rb
因为我将/etc/gitlab映射到了/backup/gitlab/config下了,所以我直接进这个目录修改gitlab.rb文件,以下几行参数
external 'http://192.168.88.213:8081' nginx['listen_port'] = 8081 gitlab_rails['gitlab_shell_ssh_port'] = 10022
改好之后将docker和容器启动就好了
systemctl start docker
docker start gitlab