簡體   English   中英

在 java 中 Dockerize springboot 應用程序

[英]Dockerize springboot application in java

我有一個 java spring 啟動應用程序。 我想對它進行 dockerize,但面臨一個問題。 下面提到的是我的 docker 文件和我面臨的錯誤:

Dockerfile

FROM openjdk:8-jdk-alpine
RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

要運行它,我使用了以下命令

docker build -t "test:dockerfile" .
docker run -p 9000:9000 "test:dockerfile"

錯誤:

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/diem/wallet/WalletApplication has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

請讓我知道我做錯了什么。 提前致謝。

用於編譯應用程序的 JDK(可能是 11)和用於在容器中運行它的 JRE(那個是 v8)之間存在版本不匹配

  1. 在 docker 容器中使用更高的 java 版本(使用比 8 更新的圖像)
  2. 使用 JDK8 編譯您的 java 應用程序

你的步驟是正確的。 問題在於編譯和執行使用 jdk 版本不匹配。 使兩個 jdk 版本相同。

步驟 01:

FROM openjdk:8-jdk-alpine
RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

步驟 02:構建,運行

docker build -t "test:dockerfile" .
docker run -p 9000:9000 "test:dockerfile"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM