基于adoptopenjdk/openjdk11镜像构建Dockerfile出现解析错误求助
问题根因
- 你使用的
adoptopenjdk/openjdk11:jdk-11.0.11_9-alpine是AdoptOpenJDK项目停止维护前发布的旧版本镜像,镜像内置的glibc兼容层与Alpine系统默认的musl libc库存在兼容性缺陷,你推测的镜像构建脚本中的列解析逻辑正是该错误的触发点。 - Docker for Windows 4.1.1版本存在已知的Alpine镜像文件系统解析Bug,哪怕Dockerfile仅包含一行FROM语句,也会在镜像拉取后的初始化阶段触发上述IO异常。
解决方案
- 方案一:替换为AdoptOpenJDK迁移后的官方维护镜像Eclipse Temurin,对应版本已修复兼容问题,修改Dockerfile的FROM语句为:
FROM eclipse-temurin:11.0.11_9-jdk-alpine
- 方案二:若必须使用当前指定版本镜像,可将Docker for Windows升级至4.6.0及以上版本,或将Docker运行后端从WSL2切换为Hyper-V模式,即可规避文件系统兼容问题。
- 方案三:放弃使用alpine变体镜像,改用相同JDK版本的debian基础镜像,完全规避musl libc兼容问题:
FROM adoptopenjdk/openjdk11:jdk-11.0.11_9
内容的提问来源于stack exchange,提问作者darth jemico
相关产品推荐
相关产品推荐

