JFrog Artifactory拉取镜像告警:无法通过摘要拉取清单求助
问题说明
拉取远程仓库镜像时出现如下告警:
WARNING: ⚠️ Failed to pull manifest by the resolved digest. This registry does not
appear to conform to the distribution registry specification; falling back to
pull by tag. This fallback is DEPRECATED, and will be removed in a future
release. Please contact admins of https://JFROG_URL ⚠️
已尝试常规缓存清理,问题未解决,当前使用Artifactory版本为7.12.6。
核心原因
Artifactory 7.12.6版本在处理远程Docker仓库的manifest digest时,存在不符合Docker Distribution Registry规范的逻辑,导致客户端拉取时触发告警,尤其是代理外部OCI格式镜像时问题更明显。
解决方案
1. 升级Artifactory到修复版本
官方在7.14.0及后续版本中修复了该兼容性问题,直接升级到7.14.0+版本是最彻底的解决办法,升级后会修正manifest digest的处理逻辑,完全符合规范要求。
2. 调整远程仓库的Docker配置(临时方案)
如果暂时无法升级,可修改远程仓库配置:
- 登录Artifactory管理后台,进入目标远程Docker仓库的配置页
- 找到Docker Settings区域,开启Force Docker V2选项
- 确认Allow Manifest Lists已启用,保证多架构镜像的manifest能正常处理
- 保存配置后重新拉取镜像测试
3. 更新Docker客户端版本
旧版Docker客户端与Artifactory 7.12.6的交互可能加剧该问题,建议将客户端升级到20.10.0及以上版本,该版本对OCI规范的兼容性更好,能减少此类告警触发。
4. 彻底重置缓存
如果之前的缓存清理不彻底,执行以下操作:
- 在Artifactory管理后台,进入远程仓库的Cache标签页,点击Empty Cache清空所有缓存
- 清理本地Docker客户端缓存:
docker system prune -af - 重新拉取镜像验证
验证方法
执行镜像拉取命令,确认告警不再出现:
docker pull [你的镜像地址]:[标签]
内容的提问来源于stack exchange,提问作者Amirhossein Taheri

