最近做的一个东西, 是将 gitlab10.x 的汉化版本, 从源码编译 (在源码中自己定制一些东西), 然后制作成 Docker 镜像, 作为 Docker 容器来运行
在启用容器中的 gitlab 的 ssh 的时候, 遇到了一些问题, 在这里记录一下:
网络的问题:
gitlab 是在容器中运行, 但是我们使用 git 访问的时候, 用的是 git@docker 主机域名: 用户名 / 仓库名的方式来访问的, 这就带来了一个问题: 客户端用 ssh 访问的时候, 访问到的是 Docker 主机的 22 端口, 而不是容器中的 22 端口, 解决的方法是: 将主机的 ssh 端口改为别的, 然后, 容器启动的时候, 将容器的 22 端口映射道主机的 22 端口, 当然, Docker 主机所在的 22 端口要确保最终用户能够访问的到
gitlab-shell 的问题:
gitlab-shell 如果配置错误, 也是不能使用 ssh 来提交代码的, gitlab-shell 的配置主要是把 config.yml.example 重命名为 config.yml 然后把其中的 gitlab 的访问地址修改成为正确的地址 (默认是 http://localhost:8080),gitlab-shell 调用 gitlab 的 api 的时候, 会用到这个地址
gitlab-shell 的主页是: https://github.com/gitlabhq/gitlab-shell
它的作用是: 处理 gitlab 的 git 命令和处理授权的秘钥列表, 当我们增加了一个 ssh 秘钥的时候, gitlab 会将秘钥的信息写入到 git 用户的. ssh 文件夹下的 authorizedkeys 文件里
来源: http://www.bubuko.com/infodetail-2537619.html