使用私有GitLab 模組Dockerize Go 應用
在使用私有GitLab 模組的Docker 容器中建置Go驗證有效。以下是解決所引用問題的改進方法:
更新的 Dockerfile
要從 GitLab 提取私有包,請修改 Dockerfile 中的以下行:
# Allow private repo pull RUN git config --global url."https://my-personal-access-token:[email protected]/".insteadOf "https://gitlab.com/"
SSH設定
更新下列指令以新增SSH 金鑰並將Git 設定為使用SSH:
RUN mkdir ~/.ssh RUN touch ~/.ssh/known_hosts RUN ssh-keyscan -t rsa gitlab.com >> ~/.ssh/known_hosts
建置指令
使用Docker 的實驗性語法並指定--mount=type=ssh 選項來啟用SSH mount:
DOCKER_BUILDKIT=1 docker build --progress=plain --mount=type=ssh .
調試SSH 連接
要調試SSH 連接問題,請調試在go 構建步驟之前運行以下指令:
RUN ssh -A -v -l git gitlab.com
AppArmor故障排除
如果遇到存取問題由於AppArmor 導致拒絕錯誤,請修改docker apparmor 設定檔/var/lib/snapd/apparmor/profiles/snap.docker.docker 並新增以下行:
/run/user/<uid>/keyring/ssh rw,
其中
金鑰檔案名稱
確保用於驗證的SSH 金鑰具有預設名稱,例如id_rsa,或在Docker 的.ssh/config 檔案中設定Host條目以指定自訂密鑰名稱。
按照這些說明,您應該能夠建立在 Docker 容器內利用 GitLab 私有模組的 Go 應用程式。
以上是如何使用帶有 SSH 身份驗證的私人 GitLab 模組來 Dockerize Go 應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!