You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nexus OSS 3.24.0-02 Docker镜像推送报错:blob upload invalid

解决Nexus OSS 3.24.0-02推送Docker镜像报blob upload invalid的问题

我之前也碰到过类似的情况,正好是Nexus从3.x早期版本升级到3.24.x后出现的Docker镜像推送报错,结合你的场景,分享几个排查和解决的方向:

1. 检查Blob存储的权限与配额

升级后Nexus的运行用户权限或者Blob存储配置可能出现变化:

  • 登录Nexus后台,进入Repository > Blob Stores,找到你的Docker仓库关联的Blob存储,检查其对应的本地目录权限,确保Nexus运行用户(通常是nexus用户)对该目录拥有完整的读写权限。
  • 同时查看Blob存储的「Soft Quota」设置,如果已经触发了配额限制,会直接阻止新的Blob上传,建议临时关闭配额或者调整额度后重试。

2. 清理本地与Nexus端的无效缓存

有时候本地缓存的镜像层和Nexus端的状态不匹配会引发这个错误:

  • 本地执行命令清理Docker缓存:
    docker system prune -af
    
    之后重新构建镜像再尝试推送。
  • 在Nexus后台进入目标Docker仓库的Browse页面,删除所有未完成的上传记录以及同名的旧版本镜像,虽然你开启了「Allow Redeploy」,但升级后的脏数据可能导致逻辑冲突。

3. 验证仓库的版本策略配置

确认Docker仓库的版本策略设置是否和Allow Redeploy兼容:

  • 进入仓库配置页面,检查Version Policy选项,如果当前是RELEASE模式,可以临时切换为SNAPSHOT模式测试推送。如果推送成功,再切回RELEASE模式并重新确认「Allow Redeploy」已勾选。

4. 查看Nexus日志定位细节

最直接的方式是查看Nexus的日志文件(默认路径为/opt/sonatype/nexus/var/log/nexus.log),搜索blob upload invalid关键词,日志中会包含更具体的错误原因,比如存储损坏、API调用异常或者权限不足等信息,能帮你快速定位根本问题。

5. 恢复升级前的仓库配置(如有备份)

如果你在升级Nexus前备份了配置文件,可以尝试恢复对应Docker仓库的配置。部分情况下,升级过程中配置会被自动修改,导致「Allow Redeploy」的设置没有真正生效。

我当时的问题是升级后Blob存储目录的权限被意外修改,给nexus用户重新赋予读写权限后就解决了。你可以按照上面的步骤逐一排查,应该能解决这个问题。

内容的提问来源于stack exchange,提问作者happy-integer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 09:47:53