是否有可能在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中。