0

正如我从Docker API 参考中了解到的,如果我有新图像的构建上下文,我必须创建一个 tarball 并通过remote参数发送一个 URI。这对我来说真的很不方便,因为我已经在与 docker 守护进程相同的主机上拥有了所有东西。是否有可能以与 docker CLI 相同的方式使用 PATH?

docker built -t myimage:tag PATH
4

1 回答 1

0

通常,您会发布 tar'd 文件,如此处所述:使用 dockerfile 构建映像。在这种情况下,您根本不需要remote参数。卷曲很容易。

如果您可能没有使用 curl 并且仍然不方便,您可以运行一个小型 Docker 容器,通过 http 为您的构建文件提供服务。

file://在当前版本的 Docker 中不起作用。也许它会在某个时候添加,但可能不会。git://支持。


(以下内容更多,我希望这不会让您感到困惑。我建议不要使用它:)

看了源码我偶然发现了一些不小心?如果目录名称以守护程序的 CWD 开头git@并且位于dockerd守护程序的 CWD 中(您可以使用ls -l /proc/`pidof dockerd`/cwd. 找到它,它可能是/.),则可能允许您使用本地 git 存储库的编码。更进一步,如果您创建一个名为git@并将其指向的符号链接/,您就可以git@/home/.../...访问您需要的任何其他目录。但是,这个目录需要是一个 git 存储库,所有内容都已提交。

因此,假设我有一个名为git@indockerd的工作目录的目录和一个 git 提交Dockerfile的目录,例如内容:

FROM debian
CMD sleep inf

然后我可以使用以下方法构建它:

curl http://localhost:2375/build?remote=git@
于 2018-03-30T14:15:38.330 回答