有条件地忽略 COPY 上的 .dockerignore 文件



我有一个前端构建,它使用Dockerfile的变体进行多个步骤:dev,CI(使用Jenkins(和生产。我不想连续下载 CI 和生产构建映像的node_modules(两者都在同一框中相继发生(。Dev 的node_modules托管在卷上,以降低重新启动开发容器的开销。

这三个阶段都共享同一个.dockerignore文件,该文件有一行不包括node_modules。是否可以通过类似 COPY node_modules/* node_modules/ 的东西添加node_modules?我徒劳地寻找了一种在 CI 和生产构建的构建部分使用绑定挂载的方法。这似乎是不可能的。

目前没有这样的方法可以提供不同的.dockerignore文件。

或者,您可以将node_modules复制到其他目录,例如在主机上使用 cp ./node_new_module,或者可能将该cp命令集成到 CI 中。

之后,您可以使用新./node_new_module复制 Dockerfile 中的节点模块 -

COPY ./node_new_modules/* node_modules/

希望这有帮助或为您提供解决此问题的方法。

最新更新