You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dockerfile的COPY命令中移除源文件名内的版本号?

解决Dockerfile中无需版本号复制Maven构建war包的问题

可行的通配符写法

你尝试的通配符写法完全可行,Docker的COPY指令支持标准文件通配符匹配,直接使用即可实现不受版本号限制的文件复制:

COPY STUDENT_MANAGER/target/STUDENT*/*.war /opt/tomcat/webapps/

这个指令会自动匹配STUDENT_MANAGER/target/目录下所有以STUDENT开头的子目录,并将其中的.war文件复制到Tomcat的webapps目录中,完全摆脱版本号的约束。

额外优化建议

  • 构建前置检查:执行docker build前必须先完成Maven构建(比如运行mvn clean package),确保STUDENT_MANAGER/target/下存在目标子目录和war包,否则Docker会因找不到文件抛出错误。
  • 简化匹配逻辑(若适用):如果Maven构建后war包直接存放在target目录下(而非子目录),且文件名格式为STUDENT-*.war,可以简化指令为:
    COPY STUDENT_MANAGER/target/STUDENT-*.war /opt/tomcat/webapps/
    
  • 避免多匹配冗余:如果target目录下存在多个旧版本的STUDENT开头子目录,建议在Maven构建前清理旧目录(比如mvn clean),防止Docker复制冗余的历史war包。

内容的提问来源于stack exchange,提问作者Nainesh Goel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:45:49