Ubuntu构建Docker镜像报错:no matching manifest for linux/arm/v7求助
问题解决:Docker构建openjdk:17-alpine时出现manifest不匹配错误
问题背景
在Ubuntu系统上构建演示应用Docker镜像时,遇到以下错误:
发送构建上下文至Docker守护进程 19.63MB
步骤1/3 : FROM openjdk:17-alpine
17-alpine: 从library/openjdk拉取
no matching manifest for linux/arm/v7 in the manifest list entries
使用的Dockerfile内容:
FROM openjdk:17-alpine ADD demo-app-1.0.jar demo-app-1.0.jar ENTRYPOINT [ "sh","-c","java -jar /demo-app-1.0.jar" ]
切换到openjdk:8-jdk-alpine可构建成功,但因依赖最新Spring版本需要使用JDK17。
解决方案
1. 替换为支持arm/v7架构的JDK17 Alpine镜像
官方openjdk:17-alpine镜像未提供linux/arm/v7架构的版本,可改用Eclipse Temurin的镜像,该镜像支持多架构(包括arm/v7):
修改Dockerfile的基础镜像:
FROM eclipse-temurin:17-alpine ADD demo-app-1.0.jar demo-app-1.0.jar ENTRYPOINT [ "sh","-c","java -jar /demo-app-1.0.jar" ]
然后重新执行构建命令:
docker build -t demo-app .
2. (备选)手动构建适配arm/v7的openjdk17-alpine镜像
如果必须使用官方openjdk镜像,可以基于alpine基础镜像自行编译JDK17,但过程较繁琐,步骤大致如下:
- 基于
alpine:latest创建Dockerfile - 在镜像中安装编译依赖(如gcc、make等)
- 下载JDK17源码并编译适配arm/v7架构
- 清理编译依赖,保留运行时所需文件
此方法耗时较长,仅推荐在无法使用第三方镜像时采用。
内容的提问来源于stack exchange,提问作者vaibhav1291
相关产品推荐
相关产品推荐

