在打包程序构建中使用 docker 个卷

Using docker volumes in packer build

是否可以使用现有的 docker 或外部卷 in/during 打包程序构建?

我在https://www.packer.io/docs/builders/docker/看到了:

"VOLUME /test1 /test2"

具体是什么意思? "VOLUME String EX: "VOLUME FROM TO"" 解释不多。 /test1来自主机吗?

我也在https://www.packer.io/docs/builders/docker/#volumes看到:

volumes (map[string]string) - A mapping of additional volumes to mount into this container. The key of the object is the host path, the value is the container path.

我该如何使用它? Where/how 我可以 put/declare 吗,假设我想在构建时间和 运行 时间期间将 /etc/dnsmasq.d/ 主机路径映射到容器中?

它与 corresponding Dockerfile directive 具有相同的含义(实际上,Packer 文档那部分中的所有指令都是 Dockerfile 命令)。您可能不需要或不需要它。

这不同于 docker run -v option 将内容装载到容器中。您不能在容器构建时指定这样的安装选项(无论是使用 docker build 还是 Packer)。您无需指定 VOLUME 即可将内容装载到某个容器目录中。

大多数常见用途不需要 Dockerfile VOLUME 指令,而且大多数情况下只会产生令人困惑的副作用。您不需要它来将配置安装到您的应用程序中;您不需要它来用开发树覆盖应用程序源代码;它所做的最明显的事情是防止未来的 RUN 指令产生影响。除非您详细了解它的作用以及您想要它的原因,否则我会避免使用它。