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

weg*_*gry 6 glob jenkins node-modules docker dockerfile

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

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

viv*_*d4v 3

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

作为替代方案,您可以将其复制node_modules到不同的目录,例如在主机上./node_new_module使用,或者可能将该命令集成到您的 CI 中。cpcp

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

COPY ./node_new_modules/* node_modules/

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