问题:您如何在 Dockerfile 或docker build
命令行中指定您希望将 tmpfs 挂载到构建容器中?这是在拆分构建的上下文中 - 第一个容器将使用 RAM 磁盘,从源代码构建应用程序,第二阶段将结果复制到新容器。
这个问题似乎很相似,但我的动机不同。我不太关心过时的图像层持续存在,但我关心的是构建的性能。在 Docker 之外进行实验时,当整个源代码树都在 RAM 中而不是在磁盘中时,构建我正在使用的特定应用程序的速度提高了 4 倍以上。(该项目有许多中间构建和并行性,所以即使是 SSD 也会有点颠簸)
由于 Docker 确实支持在正常docker run
命令期间挂载 tmpfs,因此似乎应该有一种方法可以将其包含在 Dockerfile 中?但是,我似乎无法在任何地方找到此信息 - 几乎每次搜索“tmpfs”和“dockerfile”或“build”或“ramdisk”等等都只是指向上面链接的帖子或 Docker 的关于使用 tmpfs 的文档容器以docker run
.
如果 tmpfs 不会持续到第二个容器的组装,那将是可以接受的。这可以通过在容器退出之前将构建的应用程序从构建容器内的 tmpfs 中复制出来,然后在复制时使用该新位置来解决。