【问题标题】:Is there a way to use a Github PAT for building a Docker image from a private Github Repo?有没有办法使用 Github PAT 从私有 Github Repo 构建 Docker 映像?
【发布时间】:2021-08-22 09:56:42
【问题描述】:

我有一个私有存储库,其中包含一个文件夹“python”和一个我想在 Linux 机器上构建的 Dockerfile。理想情况下,我想使用我的个人访问令牌来验证自己。

对于公共存储库,正确的代码似乎是:

docker build -t example_tag github.com/user/repo

但是,这会要求提供用户名和密码,这对于自动化来说是不可行的。

我尝试了here 提供的解决方案,但这似乎不起作用。它返回:

无法下载远程上下文 https://{TOKEN}@github.com/{ORG}/{repo}#master:python

有没有人有任何其他可能的解决方案,或者有没有更好的方法从私有仓库创建 Docker 镜像(除了 Github Action,由于使用频率的限制,我没有使用)?

非常感谢!

【问题讨论】:

  • 你能不能正常git clone仓库,然后docker build .本地树,不使用GitHub URL?
  • 感谢您的建议@David-Maze。最后我围绕这个想法实现了一个 bash 脚本。

标签: git docker github docker-build


【解决方案1】:

是的,您可以这样做。将您的个人访问令牌作为构建参数传入,例如 GIT_TOKEN。然后,您可以在容器内使用this answer from the Git FAQ 来设置凭证助手(更换用户名):

$ git config --global credential.helper \
    '!f() { echo username=author; echo "password=$GIT_TOKEN"; };f'

这会将您的容器化 Git 配置为从您传递给容器的 GIT_TOKEN 环境变量中读取密码。

请注意,由于构建参数保存在容器中,为了让您安全地使用此方法,您必须使用多阶段构建。

【讨论】:

  • 感谢您的回答。我最终选择了 David Maze 建议的解决方案,但这仍然很有帮助。
猜你喜欢
  • 2021-03-26
  • 2022-11-10
  • 2021-01-09
  • 2019-10-27
  • 2021-03-17
  • 1970-01-01
  • 2018-01-05
  • 1970-01-01
  • 2020-06-08
相关资源
最近更新 更多