最近做的一個東西,是將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文件里