我有一個我寫的java程序。主要包括 OpenJDK8、Maven 和 JavaFX。該程序自行構建和運行。我想把它放在一個 Docker 容器中,但是我在構建它時遇到了麻煩。這是我的 Dockerfile:FROM openjdk:8-jdkFROM maven:3.3-jdk-8-onbuildRUN apt-get update && apt-get install -y --no-install-recommends openjfx && rm -rf /var/lib/apt/lists/*CMD ["java","-jar","target/"CodeDemo-1.0-SNAPSHOT.jar"]這是我為構建容器而運行的內容:sudo docker build -t java-maven-code-demo .這是我一直抱怨沒有 javafxpackager 的錯誤:無法在項目 CodeDemo 上執行目標 org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (unpack-dependencies):命令執行失敗。無法運行程序“/usr/lib/jvm/java-8-openjdk-amd64/jre/../bin/javafxpackager”(在目錄“/usr/src/app”中):錯誤=2,沒有這樣的文件或目錄-> [幫助 1]我在 CodeDemo 目錄中有所有文件。在頂層,我有 src、target、Dockerfile、pom.xml。在目標中,我有已編譯的 jar。我對這個錯誤感到困惑,因為我認為 Java 8 OpenJDK 附帶了 JavaFX。所以,如果我要使用 OpenJDK,我應該得到 JavaFX 所需的東西(GitHub 上的類似問題- 解決方案仍然給出了錯誤)。誰能指出我可能做錯的方向?我還應該做些什么來獲得正確的庫嗎?
1 回答

飲歌長嘯
TA貢獻1951條經驗 獲得超3個贊
您有多FROM
條線路?;谀?Dockerfile,將僅使用 maven 基礎映像。也許在安裝openjfx之前嘗試通過另一個RUN
語句安裝openjdk?
我也沒有COPY
在您的 Dockerfile 中看到任何聲明。我最初假設CodeDemo-1.0-SNAPSHOT.jar
默認情況下存在于 maven 圖像上,但我只是嘗試構建圖像并且它不存在。如果這是您的 Java 程序中的 jar 文件,請不要忘記通過COPY
Dockerfile 中的語句添加它。
添加回答
舉報
0/150
提交
取消