解决docker gitlab新建issue不能请求正确端口的问题

问题描述

docker 安装 gitlab,在web端新建 issue 时,对跳转至其他端口,导致无法正常操作。

比如小编,在 8090 端口操作新增 issue 时,会跳转至 80 端口。

问题原因

原因是docker镜像的默认端口和主机映射的端口不一致。

比如,gitlab在主机提供服务的端口是8090,即web在8090端口登录。

http://www.yixzm.cn:8090/

但是,在 docker 内部,gitlab 监听的 docker 端口是 80 端口。

docker ps 查看,可以看到这样一个映射关系:

0.0.0.0:8090->80/tcp

这就导致,在新建 issue 的时候,本该访问主机 8090 端口的请求,被硬生生的掰到了 80 端口,从而导致新建 issue 请求无法正常到达 docker gitlab

解决方案

所以,要解决这个问题的方法就很明确了。

将 docker 中 gitlab 监听的端口和主机监听的端口保持一致。

docker ps 查看,可以看到这样一个映射关系:

0.0.0.0:8090->8090/tcp

这样,问题就解决了。

主要步骤

1

停止 docker 和 gitlab服务

docker stop gitlab
systemctl stop docker 

2

修改 docker 端口映射文件

查看 docker id

docker ps -a

进入 docker 修改文件

docker exec -it gitlab bash

vim /var/lib/docker/containers/【docker_id】/hostconfig.json

vim /var/lib/docker/containers/【docker_id】/config.v2.json

将文件中的端口修改为目标端口。

比如,小编将 80 端口修改为 8090 端口。

3

修改 gitlab 默认端口

此处参考 【Docker安装运行Gitlab(非默认端口教程)】

进入 docker 修改文件

docker exec -it gitlab bash

vi /etc/gitlab/gitlab.rb

>external_url 'http://www.yixzm.cn:8090'
>gitlab_rails['gitlab_ssh_host'] = 'www.yixzm.cn'

grep -v ^# /etc/gitlab/gitlab.rb | grep -v ^$

vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml

>  gitlab:
>    ## Web server settings (note: host is the FQDN, do not include http://)
>    host: www.yixzm.cn
>    port: 8090
>    https: false

4

docker 重启

systemctl start docker

5

gitlab 重启

docker exec -it gitlab bash
docker exec -it gitlab gitlab-ctl restart

END

至此,问题解决!

版权声明

弈心博客


首发 弈心博客,转载请附链接!

赞赏支持

感谢支持!


建站不易,感谢支持!

推荐阅读