我是gradleKotlin和micronaut的新手。通过遵循官方指南create your first micronaut app gradle kotlin,我让它在我的mac M1上运行正常,但生成docker映像的任务失败:
Could not build image: no matching manifest for linux/arm64/v8 in the manifest list entries
我想这是意料之中的通过查看生成的Dockerfile,我得到了以下结果:
FROM openjdk:17-alpine
WORKDIR /home/app
COPY layers/libs /home/app/libs
COPY layers/classes /home/app/classes
COPY layers/resources /home/app/resources
COPY layers/application.jar /home/app/application.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/home/app/application.jar"]
所以FROM
应该指定一个显式的平台,如果我没有弄错的话,micronaut的插件使用Gradle Docker Plugin,但是我没有找到合适的指令来覆盖它生成的原始fromAssert。
2条答案
按热度按时间gfttwv5a1#
遵循文档:
默认情况下使用openjdk:17-alpine基础图像,但是您可以使用dockerfile任务的baseImage属性轻松切换要使用的基础图像:
6yoyoihd2#
Micronaut Gradle插件默认设置的问题是,它使用
openjdk:17-alpine
作为基础映像。此映像仅适用于amd64
架构。您的M1 Mac将使用aarch64
。下面是我如何解决我的项目的问题。
这将在
aarch64
(又名arm64
)和amd64
上工作。