2

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

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

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

4

2 回答 2

1

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

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

于 2015-01-07T07:51:57.797 回答
0

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

ADD ./ /usr/local/git/my_repo

如果您需要添加一些其他 repo,这通常是您希望您的自动化系统(即 Ansible、Puppet、Chef 等)处理的事情。让您的自动化系统下拉您需要的任何 repo,然后将 Dockerfile 移动到包含所有需要的 repos 的根文件夹并执行(假设您希望所有这些都在图像中名为“my_repos”的文件夹中) :

ADD ./ /my_repos

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

于 2015-01-07T21:20:38.400 回答