【问题标题】:Conditionally ignoring a .dockerignore file on COPY有条件地忽略 COPY 上的 .dockerignore 文件
【发布时间】:2018-06-29 11:53:45
【问题描述】:

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

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

【问题讨论】:

  • 你能在你想要COPY node_modules/* node_modules/的环境中使用不同的Dockerfile吗?
  • @vivekyad4v 是的,已经是这样了。

标签: docker jenkins dockerfile node-modules glob


【解决方案1】:

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

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

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

COPY ./node_new_modules/* node_modules/

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

【讨论】:

    猜你喜欢
    • 2019-07-14
    • 1970-01-01
    • 2021-11-16
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多