是否有可能在Dockerfile ADD中使用私有混帐(集线器)回购?

有很多 关于通过安装git然后克隆一些东西来克隆一个git repo 一个容器的问题 。 我感兴趣的是更像这样 ,他们在ADD命令中使用GitHub URL。

显然这只是一个公共URL,但是。

是否有可能使用类似git ssh或scp或者我的Dockerfile中的文件来获取文件到我的图像?

这是不可能的,因为docker构build不支持构build时参数,虽然我认为这个function可能即将推出。 现在你必须使用Docker上下文进行构build。

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

鉴于OP的评论中的澄清,他只是试图将git代码放入Docker,最简单的方法是使用git repo作为docker构build文件的上下文。 例如,如果我想从我的repo代码被添加到泊坞窗图像中的/ usr / local / git / my_repo,我将Dockerfile放在我的图像的根目录下,然后执行:

 ADD ./ /usr/local/git/my_repo 

如果你需要添加一些其他的repo,这通常是你希望你的自动化系统(如Ansible,Puppet,Chef等等)处理的东西。 让你的自动化系统下拉你需要的任何回购,然后把你的Dockerfile移到包含所有需要的回购和做的根文件夹(假设你想把它们全部放在一个名为“my_repos”的文件夹中) :

 ADD ./ /my_repos 

你可以从这里扩展这个想法,但主要的tl; dr; 取而代之的是,将内容添加到Docker镜像作为上下文是最好的也是最容易的,并让您的自动化系统处理所需的身份validation和进程,以获取您要添加的任何内容,并将其排列在Dockerfile中。