ARTIFACTORY:当从远程docker存储库中提取时,“二进制提供程序没有内容”
通常,“Binary provider has no content for”错误消息意味着您的文件存储库指向错误的二进制文件路径,其中Artifactory试图查找该路径中不存在的二进制文件,或者根本不存在(有关所述错误消息的更多详细信息)。
但是,如果您在尝试从远程docker存储库拉取时收到此错误,则似乎违反直觉,因为这应该只发生在本地存储库中。在远程docker存储库中发生这种情况的原因是因为远程docker缓存存储库中可能存在剩余的清单文件,但没有相应的二进制文件(没有相应层的docker清单)。
要解决这个问题,我们只需要删除剩余的清单文件,然后您应该能够在远程存储库上执行docker pull。
要做到这一点,请遵循以下步骤:
1.找到与您试图从中提取的远程docker存储库对应的缓存(这应该与远程repisotry具有相同的名称,但带有“-cache”后缀)。
2.在缓存存储库中,找到包含清单的相应标记(例如,latest)。json,它与您在错误消息中看到的SHA-1值相关。
3.执行一个Zap缓存在相关目录(代表docker映像/标记)上进行操作。
4.删除目录。
5.如果出现多个二进制提供程序错误,则对任何其他相关目录重复此操作。
您还可以对所有远程缓存存储库执行“删除内容”。但是,请记住,这将删除特定缓存存储库中的所有内容(在所有缓存存储库都损坏的情况下使用)。