是否可以在 Dockerfile ADD 中使用私有 github) 存储库?

Is it possible to use a private git(hub) repo in Dockerfile ADD?

are plenty of questions about cloning a git repo into a container by installing git and then cloning stuff. What I'm interested in doing is something more like this,他们在 ADD 命令中使用 GitHub URL。

显然这只是一个 public URL。

是否可以通过 ssh 或 scp 或我的 Dockerfile 中的某些东西使用 git 之类的东西来将文件放入我的图像中?

目前还不可能,因为 docker 构建不支持构建时参数,尽管我认为此功能可能很快就会推出。您现在必须使用 docker 上下文进行构建。

例如,如果您查看 hub.docker.com 自动构建的工作方式,您必须将部署密钥添加到 github 存储库中,以允许其构建服务器读取该存储库。

鉴于 OP 的评论中的澄清,他只是试图将 git 代码放入 Docker,最简单的方法是使用 git 存储库作为上下文docker 构建文件。例如,如果我想将我的存储库中的代码添加到 docker 图像中的 /usr/local/git/my_repo,我会将 Docker 文件放在图像的根目录中并执行:

ADD ./ /usr/local/git/my_repo

如果您需要添加一些其他存储库,这通常是您希望自动化系统(即 Ansible、Puppet、Chef 等)处理的内容。让您的自动化系统下拉您需要的任何回购协议,然后将您的 Docker 文件移动到包含所有需要的回购协议的根文件夹并执行(假设您希望所有这些都在一个名为 [=图中的 18=]):

ADD ./ /my_repos

你可以从这里扩展这个想法,但是主要的 tl;dr;带走的是,最好和最简单的方法是将内容添加到 Docker 图像作为上下文,并让您的自动化系统处理最初获取您想要添加的任何内容所需的身份验证和过程,并将其安排在 Docker从中归档您的建筑物。