在 Dockerfile 中,我有
COPY . .
我想排除整个目录,在我的例子中是 node_modules 目录。
像这样的东西:
COPY [all but **/node_modules/**] .
Docker可以做到这一点吗?
原文由 Alexander Mills 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Dockerfile 中,我有
COPY . .
我想排除整个目录,在我的例子中是 node_modules 目录。
像这样的东西:
COPY [all but **/node_modules/**] .
Docker可以做到这一点吗?
原文由 Alexander Mills 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于那些不能使用 .dockerignore 文件的人(例如,如果您需要一个 COPY 中的文件而不是另一个):
是的,但您需要多个 COPY 指令。具体来说,您需要为要排除的文件名中的每个字母一个 COPY。
COPY [^n]* # All files that don't start with 'n'
COPY n[^o]* # All files that start with 'n', but not 'no'
COPY no[^d]* # All files that start with 'no', but not 'nod'
继续直到你有完整的文件名,或者只是你有理由确定的前缀不会有任何其他文件。
原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答2.4k 阅读✓ 已解决
2 回答799 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答1.4k 阅读
1 回答1.6k 阅读
2 回答1.2k 阅读
1 回答962 阅读
在您的 docker build 上下文目录中创建文件
.dockerignore
(因此在这种情况下,很可能是 node_modules 的父目录),其中包含一行:尽管您可能只想:
关于 dockerignore 的信息: https ://docs.docker.com/engine/reference/builder/#dockerignore-file