使用私有 GitLab 模块 Dockerize Go 应用
在使用私有 GitLab 模块的 Docker 容器中构建 Go 应用时,设置至关重要SSH 验证有效。以下是解决所引用问题的改进方法:
更新的 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中文网其他相关文章!