能否在Docker多阶段构建中合并COPY --from命令以减少镜像层数?
可以合并这些COPY语句以减少镜像层数
你直接在一条COPY指令里指定多组「源路径 目标路径」即可,用空格分隔,换行时用反斜杠续行,写法如下:
COPY --from=build /usr/local /usr/local \ /home/platform /home/platform \ /usr/lib /usr/lib
这种写法和原来三条COPY的效果完全一致,但只会生成一层镜像。Docker的COPY指令本身就支持同时复制多个源-目标对,只要保证每个源和目标的映射关系正确就行,和你之前尝试的单文件夹场景逻辑相通,只是扩展为多组映射。
另外,这种方式比用RUN cp更合适:
- COPY是Docker原生文件复制指令,无需启动shell执行命令,性能更优
- 能更好地利用Docker构建缓存,源文件无变化时该层会直接复用缓存
- 避免RUN指令中shell环境可能带来的额外问题(比如权限、路径解析差异等)
内容的提问来源于stack exchange,提问作者chandrakant kaski
相关产品推荐
相关产品推荐

