gitlab 在 docker 容器中运行

Posted

技术标签:

【中文标题】gitlab 在 docker 容器中运行【英文标题】:gitlab running inside docker container 【发布时间】:2019-10-19 03:17:21 【问题描述】:

我有一台运行 ssh 的机器。现在,我想在 docker 容器中运行 gitlab。因此,请按照此处提到的说明进行操作 https://docs.gitlab.com/omnibus/docker/。该指令说将容器 ssh 端口 22 与主机的 ssh 端口(22)绑定。我无法执行此操作,因为端口已与主机中的 openssh 服务器绑定。所以我将容器的 ssh 端口绑定到其他一些端口,比如 222 左右。这样做 gitlab 得到了设置,但是当我尝试使用 ssh 方式克隆项目时,我无法做到。

有没有办法解决这个问题?可能是什么原因,我怀疑是因为端口映射。我想让 ssh 在我的主机上运行,​​在容器内运行 gitlab,并且应该能够使用 ssh 方式进行代码提交、克隆和推送。

【问题讨论】:

请添加您的输出尝试示例。 您能在您的服务器上运行docker ps 并向我们展示端口映射吗?所有 SSH 连接都默认使用端口 22,因此您可能必须将端口号显式添加到 git 远程 URL 上升 2 分钟(健康)0.0.0.0:222->22/tcp, 0.0.0.0:9090->80/tcp, 0.0.0.0:444->443/tcp gitlab。这是docker ps命令后的端口映射 【参考方案1】:

Docker 端口映射是一回事,但您还需要调整 gitlab.rb 中的 gitlab rails 配置以指定自定义 ssh 端口:

gitlab_rails['gitlab_shell_ssh_port'] = 222

然后重启容器

【讨论】:

git 克隆 git@gitlab.yadavsudhir.com:sudhir/dummm.git。无论如何,这就是我试图克隆虚拟项目的方式。它一直在询问密码,我正在为我的 ssh 私钥键入短语。 让我试试上面的设置 Gitlab 在启用此设置的情况下自动调整项目中的克隆 URL。例如:ssh://git@host:222/project.git

以上是关于gitlab 在 docker 容器中运行的主要内容,如果未能解决你的问题,请参考以下文章

为Docker容器中运行的gitlab添加ssh的一些问题记录

上传本地项目到docker运行的gitlab容器中

在dind中运行docker-compose时Docker容器拒绝通信 - Gitlab CI/CD

Docke及Docker Compose于微服务的实践

在 gitlab ci 中查找在 docker-compose 中运行的容器的 url/ip

nginx 的 gitlab 容器代理传递不适用于推送请求