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