【问题标题】:UnsupportedClassVersionError in Docker when run docker-compose运行 docker-compose 时 Docker 中出现 UnsupportedClassVersionError
【发布时间】:2022-06-11 22:43:58
【问题描述】:

我正在尝试在 docker 中运行我的 spring 应用程序。启动 jar fire 文件成功。

Dockerfile:

# syntax=docker/dockerfile:1

FROM openjdk:17-oracle
VOLUME /tmp
COPY target/Ta3ikDataBase-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]

docker-compose.yml

version: '2'

services:
  app:
    image: 'backend_db'
    build:
      context: src
      dockerfile: Dockerfile
    ports:
      - "8080:8081"
    depends_on:
      - db
    environment:
      - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/compose-postgres
      - SPRING_DATASOURCE_USERNAME=compose-postgres
      - SPRING_DATASOURCE_PASSWORD=compose-postgres

  db:
    image: 'postgres:13.1-alpine'
    container_name: db
    restart: always
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=compose-postgres
      - POSTGRES_PASSWORD=compose-postgres

当我在 Docker 中执行此操作时出现错误。

database-app-1  | Error: LinkageError occurred while loading main class ta3ikdb.DbApplication
database-app-1  |       java.lang.UnsupportedClassVersionError: ta3ikdb/DbApplication has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 55.0
database-app-1 exited with code 1

我该如何解决这个问题?

【问题讨论】:

    标签: java spring docker docker-compose


    【解决方案1】:

    我也面临同样的问题。 我已经使用 Java17 构建了 springboot 应用程序并生成了它的 DockerImage。尝试运行 DockerImage 时,会出现如下错误。

    "...已由更新版本的 Java Runtime(类文件版本 61.0)编译,此版本的 Java Runtime 仅识别最高 55.0 的类文件版本"

    【讨论】:

      猜你喜欢
      • 2019-04-20
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 2021-06-13
      • 2023-03-09
      • 2021-12-28
      • 2021-04-14
      • 1970-01-01
      相关资源
      最近更新 更多