通过安装git然后克隆内容,are plenty of questions about将git repo 克隆到容器中。我感兴趣的是更像this,他们在ADD
命令中使用GitHub URL。
显然,这只是一个公共网址。
是否可以在我的Dockerfile中使用git over ssh或scp之类的东西来获取文件到我的图像中?
答案 0 :(得分:1)
它还不可能,因为docker build不支持构建时参数,尽管我认为这个功能可能即将推出。您现在必须使用docker上下文进行构建。
例如,如果您查看hub.docker.com自动构建的工作方式,则必须在github存储库中添加一个部署密钥,以允许其构建服务器读取该存储库。
答案 1 :(得分:0)
鉴于OP的评论澄清他只是试图将git代码添加到Docker中,最简单的方法是使用git repo作为docker构建文件的上下文。例如,如果我希望将我的repo中的代码添加到docker镜像中的/ usr / local / git / my_repo,我会将Dockerfile放在我的图像的根目录中并执行:
ADD ./ /usr/local/git/my_repo
如果您需要添加其他回购,这通常是您希望自动化系统(即Ansible,Puppet,Chef等)处理的内容。让您的自动化系统下拉您需要的任何仓库,然后将您的Dockerfile移动到包含所有需要的仓库的根文件夹并执行(假设您希望所有这些都位于图像中名为“my_repos”的文件夹中) :
ADD ./ /my_repos
你可以从这里扩展这个想法,但主要是tl; dr;带走的是,最好和最简单的方法是将内容添加到Docker镜像作为上下文,并让您的自动化系统处理初始获取您想要添加的任何内容所需的身份验证和过程,并将其安排在您的建筑物的Dockerfile周围。