无法从 gitlab 克隆存储库(docker 在 traefik 反向代理后面)

Unable to clone repository from gitlab (docker behind traefik reverse proxy)

最近我在 traefik 反向代理容器后面构建了一个带有 gitlab 的 docker 容器。我很容易就能通过 https 登录。但是,当我尝试使用 intellij(或 git bash)克隆存储库时,出现错误

ssh: connect to host git.domain.de port 22: Connection refused
fatal: Could not read from remote repository.

docker-compose 文件设置端口:

ports:
  - 80
  - 22:22

而且 Traefik 只是在监听端口 80 和 443。

那么有没有人知道是什么导致了这个问题或如何跟踪它?为什么我可以登录网络 UI 但不能克隆任何存储库?日志不提供任何有关拒绝连接或错误的信息。但如果它有帮助,那么我可以在这里上传一些日志。

So has anybody any idea what is causing this problem or how to track it?

您的网络配置有问题。您的 git 客户端无法访问端口 22 上的 gitlab 安装。

Why can I log into the web UI but can't clone any repository? Because you use 80/443 ports for your web UI, but you use port 22 for cloning with your git client.

如果您不介意通过 https 进行克隆,并且 gitlab 支持它,您可以尝试一下。如果您想通过 SSH 进行克隆,则需要对端口 22 连接进行故障排除。根据您的网络配置,它可能在任何地方。

以下是您可能想尝试的一些方法:

  • 确保 gitlab 正在侦听 22
  • 确保您可以从 gitlab docker 容器
  • 内部连接到端口 22 上的 gitlab
  • 确保您可以从 docker 容器外部的 docker 主机连接到端口 22 上的 gitlab
  • 确保您可以从您作为 运行 git 客户端的同一台计算机连接到端口 22 上的 gitlab

显然其中之一会失败。出现这种情况时,您必须找出原因并解决问题。