已引入Jib仍需Docker?Quarkus容器构建异常求助
解决Quarkus Jib插件依赖Docker守护进程的问题
问题根源
你当前只设置了quarkus.container-image.build=true,但未开启远程仓库推送。Quarkus Jib插件默认在仅开启build的情况下,会尝试把构建好的镜像加载到本地Docker守护进程,这就需要Docker处于运行状态。而Jib宣传的“无需Docker构建”,是针对直接推送远程镜像仓库的场景。
快速修复步骤
- 开启镜像推送配置
在你的application.properties中添加一行:
quarkus.container-image.push=true
开启推送后,Jib会跳过本地Docker加载环节,直接完成镜像构建并推送到GHCR仓库,全程不需要Docker daemon。
移除本地加载强制配置
检查配置文件中是否存在quarkus.container-image.local=true,如果有就删掉它——这个配置会强制插件把镜像加载到本地Docker,直接抵消Jib的无Docker能力。验证Token权限
确认你的GitHub Token拥有write:packages权限,这是向GHCR推送镜像的必要权限,没有的话会导致推送失败。
完整可用配置示例
quarkus.container-image.build=true quarkus.container-image.push=true quarkus.container-image.name=hello-world-${quarkus.application.name} quarkus.container-image.registry=ghcr.io quarkus.container-image.group=<my github group name> quarkus.container-image.username=<my github username> quarkus.container-image.password=<my github token with all required permissions>
额外排查方向
如果按上述配置仍有问题:
- 检查网络是否能正常访问GHCR(可尝试
curl https://ghcr.io验证) - 确认
group和username配置正确,GHCR的镜像路径格式为ghcr.io/<group>/<name>:<tag> - 可尝试升级Quarkus到3.11.x系列的最新小版本(如3.11.3),修复可能存在的插件bug
内容的提问来源于stack exchange,提问作者Eugene Shmorgun
相关产品推荐
相关产品推荐

