我正在尝试从 ECS Fargate 运行 AWS ECR 中托管的 docker 映像。但我在运行任务时遇到以下错误。
exec /usr/java/openjdk-20/bin/java: exec format error
我能够通过 docker 镜像在本地运行它。我用的是苹果M1。 我正在使用 java 20。
FROM openjdk:20
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
这也是 pom 文件中的 java 版本。
<properties>
<java.version>20</java.version>
</properties>
我在使用 JDK 17 时遇到了同样的异常。由于镜像是在 M1 处理器上构建的,因此我将 ECS 任务操作系统/架构更新为 Linux/ARM64,并且完美运行。