我的电脑是arm为什么./gradlew :fineract-provider:jibDockerBuild -x test命令执行出来是amd64的镜像
在你的 build.gradle
文件中,Jib插件默认使用的基础镜像是 'azul/zulu-openjdk-alpine:17'
,这个镜像默认是针对amd64架构的。如果你想要构建一个针对arm架构的镜像,你需要使用一个针对arm架构的基础镜像。
你可以将基础镜像更改为 'azul/zulu-openjdk-alpine:17-jre-headless-arm64v1'
,这是一个针对arm64架构的OpenJDK镜像。
你可以在 build.gradle
文件中找到 jib
配置部分,然后将 from
配置中的 image
更改为 'azul/zulu-openjdk-alpine:17-jre-headless-arm64v1'
。
jib {
from {
image = 'azul/zulu-openjdk-alpine:17-jre-headless-arm64v1'
}
// ... 其他配置
}
然后再次运行 ./gradlew :fineract-provider:jibDockerBuild -x test
命令,应该就可以得到一个针对arm架构的Docker镜像了。
不对azul/zulu-openjdk-alpine:17即支持amd64又支持arm
你的理解是正确的。Docker镜像 azul/zulu-openjdk-alpine:17
确实支持多种架构,包括amd64和arm64。当你在一个特定的架构上运行Docker时,Docker会自动选择适合该架构的镜像。
然而,当你使用Jib插件构建Docker镜像时,Jib默认会使用amd64架构的基础镜像,即使你在arm架构的机器上运行。这是因为Jib在构建镜像时并不运行Docker,而是直接从Docker镜像仓库下载基础镜像的层。由于Jib无法确定运行环境的架构,所以它默认使用amd64架构。
如果你想要构建一个针对arm架构的镜像,你需要明确指定一个针对arm架构的基础镜像,如 'azul/zulu-openjdk-alpine:17-jre-headless-arm64v1'
。