升级Java应用到Java11时Docker构建报镜像引用格式错误,求可用镜像
问题根因
你遇到的报错存在两个常见触发原因:
- 本地Docker版本低于17.05,不支持多阶段构建的
as别名语法,会将openjdk:11-jdk-slim as build整体识别为镜像引用,触发格式校验失败。可执行docker version确认版本,低于要求请先升级Docker。 - 官方原生
openjdk镜像已正式废弃停止维护,无组织前缀的openjdk系列镜像已经从Docker Hub官方源下架,部分镜像源会将无组织前缀的未知镜像判定为格式非法。
正确镜像使用方案
目前官方维护的OpenJDK发行版镜像为Eclipse Temurin系列,你可以直接替换Dockerfile中的基础镜像:
- 将第一阶段的基础镜像替换为带官方组织前缀的版本:
# 替换原 FROM openjdk:11-jdk-slim as build 为以下内容 FROM eclipse-temurin:11-jdk-slim as build
- 先执行
docker pull eclipse-temurin:11-jdk-slim验证镜像可正常拉取后,再执行镜像构建操作即可。 - 如果你所在团队有内部镜像源,可将该镜像同步到内部源后,替换为内部源的完整路径使用即可,例如
docker.abcd.net/public/eclipse-temurin:11-jdk-slim。
内容的提问来源于stack exchange,提问作者jose1221
相关产品推荐
相关产品推荐

