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

运行Docker镜像时提示Illegal option:D错误,求排查代码问题

解决Docker运行时"Illegal option : D"错误

问题根源

你的Dockerfile存在三个关键问题:

  • 命令误用:运行Java Jar包需要用java命令,而非jar命令。jar仅用于Jar文件的打包/解压操作,无法启动Java应用。
  • JVM参数格式错误:Spring Profile激活参数缺失-前缀,正确写法应为-Dspring.profiles.active=local(参数名推荐用复数profiles,单数profile部分场景兼容,但必须带-)。原写法Dspring.profile.active=local会被jar命令识别为非法选项,直接触发"Illegal option : D"错误。
  • 路径不匹配:ADD命令将Jar包复制到了/target/abc-docker,但ENTRYPOINT里引用的是/abc-0.0.1-release.jar,路径不一致会导致启动时找不到Jar文件。

修正后的Dockerfile

FROM openjdk:17
EXPOSE 8181
# 将Jar包复制到容器内规范路径,方便管理
ADD target/abc-0.0.1-release.jar /app/abc-app.jar
# 使用java命令正确启动应用,并传递JVM参数
ENTRYPOINT ["java", "-Dspring.profiles.active=local", "-jar", "/app/abc-app.jar"]

关键修正点

  1. 替换jar为java,这是启动Java应用的标准命令。
  2. 给Spring参数添加-前缀,让JVM识别为系统属性参数。
  3. 统一Jar包的存储路径与引用路径,避免文件找不到的问题。

内容的提问来源于stack exchange,提问作者Ashutosh Vaishnav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 13:45:24