Docker升级至23.0.0后Server版本显示为library-import求助
Buildroot版本变量注入机制变更
Docker 23.0.0版本后,Buildroot的docker-engine包调整了版本信息注入逻辑。旧版本(如19.x)依赖硬编码或简单Makefile变量传递版本号,而23.0.0需要明确配置对应版本参数,若缺失则默认填充library-import作为占位符。检查Buildroot配置中的版本参数
执行make menuconfig进入配置界面,导航至Target packages -> System tools -> docker-engine,确认DOCKER_ENGINE_VERSION是否设置为23.0.0。若该选项为空,编译脚本无法获取正确版本号,就会显示异常标识。验证docker-engine包的.mk文件配置
查看Buildroot下package/docker-engine/docker-engine.mk文件,检查是否存在DOCKER_ENGINE_VERSION变量定义,以及编译时是否将该变量传递给Docker构建脚本。如果.mk文件未正确配置版本变量,需手动修正,确保构建时能注入23.0.0版本号。补充Docker源码构建的版本参数
Docker 23.0.0源码构建要求明确传递VERSION参数给make命令。若Buildroot的docker-engine构建脚本中未添加VERSION=$(DOCKER_ENGINE_VERSION)这类参数,源码编译时会自动用library-import作为默认版本标识,需修改构建脚本补充该参数。清理缓存重新编译
旧版本(19.x)的构建缓存可能干扰新包编译,执行make docker-engine-dirclean清理该包缓存,再重新执行make docker-engine编译,确保新的版本参数生效。
内容的提问来源于stack exchange,提问作者Jay

