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

时间:2018-01-20 09:48:36

标签: docker jenkins dockerfile node-modules glob

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

这三个阶段都共享相同的.dockerignore文件,其中有一行不包括node_modules。可以通过类似COPY node_modules/* node_modules/之类的东西添加node_modules吗?我在CI和生产版本的构建部分期间找到了一种使用绑定装载的方法,但是徒劳无功。这似乎不可能。

1 个答案:

答案 0 :(得分:2)

目前没有这种方法可以提供不同的Integer文件。

作为替代方法,您可以使用主机上的.dockerignorenode_modules复制到其他目录,例如./node_new_module,也可以将cp命令集成到CI中。

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

./node_new_module

希望这有助于解决这个问题,或者为您提供解决此问题的方法。