這是我的碼頭文件:# 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"]
添加回答
舉報
0/150
提交
取消