首页 > 后端开发 > Golang > 如何使用带有 SSH 身份验证的私有 GitLab 模块来 Dockerize Go 应用程序?

如何使用带有 SSH 身份验证的私有 GitLab 模块来 Dockerize Go 应用程序?

Mary-Kate Olsen
发布: 2024-12-26 15:33:10
原创
644 人浏览过

How to Dockerize Go Apps Using Private GitLab Modules with SSH Authentication?

使用私有 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,
登录后复制

其中 是将运行 docker build 命令的用户 ID。

密钥文件名

确保用于身份验证的 SSH 密钥具有默认名称,例如 id_rsa,或在 Docker 的 .ssh/config 文件中配置 Host 条目以指定自定义密钥名称。

按照这些说明,您应该能够构建在 Docker 容器内利用 GitLab 私有模块的 Go 应用程序。

以上是如何使用带有 SSH 身份验证的私有 GitLab 模块来 Dockerize Go 应用程序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板