为了账号安全,请及时绑定邮箱和手机立即绑定

从 docker 文件传递​​ jvm 参数时出错

从 docker 文件传递​​ jvm 参数时出错

Helenr 2022-10-26 15:59:12
这是我的码头文件:# Start with a base image containing Java runtimeFROM openjdk:8-jdk-alpine# Add a volume pointing to /tmpVOLUME /tmp# Make port 8080 available to the world outside this containerEXPOSE 8080# The application's jar fileCOPY Server_Changes/glowroot  /tmp ARG JAR_FILE=target/websocket-demo-0.0.1-SNAPSHOT.jarARG OK=/tmp/glowroot.jar# Add the application's jar to the containerADD ${JAR_FILE} websocket-demo.jar# Run the jar file ENTRYPOINT ["java", " -javaagent:/glowroot.jar" , "- Dglowroot.agent.id=Docker "," -jar /websocket-demo.jar"]构建映像时出现以下错误:无法找到或加载主类-javaagent:.glowroot.jar有人可以解释为什么吗?
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

当您在 、 和 命令中使用类似 JSON 的语法时RUN,ENTRYPOINT引号CMD内的空格很重要。特别是,当你说


ENTRYPOINT ["java", " -javaagent:/glowroot.jar" , ...]

#                    ^

空间是选项的一部分;并且由于该选项不以 a 开头-,Java 将其解释为类名。这基本上适用于您的所有选择。在最后一个选项中,-jar类名是两个单独的选项,需要在两个单独的“单词”中。


(考虑将其更改ENTRYPOINT为 aCMD以使图像更易于调试,并删除VOLUME声明;它只会导致意外的奇怪副作用。)


CMD ["java", "-javaagent:/glowroot.jar",

     "-Dglowroot.agent.id=Docker",

     "-jar", "/websocket-demo.jar"]


查看完整回答
反对 回复 2022-10-26
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号