Is this supposed to be compatible with docker-registry 2.3? I've just updated to 2.3 and then discovered the --untagged option, so I gave it a try, but it terminates with an exception:
Traceback (most recent call last):
File "/usr/local/bin/delete_docker_registry_image", line 339, in <module>
main()
File "/usr/local/bin/delete_docker_registry_image", line 325, in main
cleaner.delete_untagged(image)
File "/usr/local/bin/delete_docker_registry_image", line 243, in delete_untagged
layers_to_protect.extend(self._get_layers_from_blob(link))
File "/usr/local/bin/delete_docker_registry_image", line 88, in _get_layers_from_blob
return get_layers_from_blob(data_path)
File "/usr/local/bin/delete_docker_registry_image", line 43, in get_layers_from_blob
return set([entry["blobSum"].split(":")[1] for entry in data["fsLayers"]])
KeyError: 'fsLayers'
Deletion of complete repositories seem to work fine.
This is an example of the data-files on which the script is failing:
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"config": {
"mediaType": "application/octet-stream",
"size": 4075,
"digest": "sha256:13578f6a9b9ced5bf075bc7a8a68d1953af824642b8e07a5a48b8a3c8b536d5e"
},
"layers": [
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 51367715,
"digest": "sha256:fdd5d7827f33ef075f45262a0f74ac96ec8a5e687faeb40135319764963dcb42"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 32,
"digest": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 32,
"digest": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 32,
"digest": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 4089549,
"digest": "sha256:e04488adab39a4de114388aaf9aa6d911612d77e2fa5b0e64377a7c04a18c597"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 195,
"digest": "sha256:2af76486f8b8752f4d7a3e1257811e68be22fd930f28c1697eb725c564d538e8"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 32,
"digest": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 32,
"digest": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
}
]
}