最近做的一个东西,是将gitlab10.x的汉化版本,从源码编译(在源码中自己定制一些东西),然后制作成Docker镜像,作为Docker容器来运行
在启用容器中的gitlab的ssh的时候,遇到了一些问题,在这里记录一下:
网络的问题:
gitlab是在容器中运行,但是我们使用git访问的时候,用的是 [email protected]主机域名:用户名/仓库名的方式来访问的,这就带来了一个问题: 客户端用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文件里