有没有办法find推送到AWS ECR的Docker镜像的年龄?
当我要求图像清单aws ecr batch-get-image --repository some/repo --image-ids "imageDigest=sha256:abcdef..."然后它返回带有内置清单的AWS回复。 示例输出
{ "images": [ { "registryId": "1234", "imageId": { "imageDigest": "sha256:abcdef...", "imageTag": "latest" } }, "imageManifest": "<serialised JSON I'll paste below>" "repositoryName": "some/repo" } ], "failures": [] }
并且embedded在AWS响应中的序列化的JSON沿着这些线查找:
{ "schemaVersion": 2, "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "config": { "mediaType": "application/vnd.docker.container.image.v1+json", "size": 123456, "digest": "sha256:38f08cc551925935e235c5c94ab3fb89568bd286e3335aa2e05d7bd3ceee4574" }, "layers": [ { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 573764, "digest": "sha256:06dde66f337b57adcfca48b87d126b99a249765ccf2e09964584befc2890ae79" } ] }
没有可以看到这个图像被推送到ECR的元数据。
原来我没有足够的权限(缺lessecr:ListImages )使用aws ecr describe-images 。 有了适当的权限,我可以运行该子命令,并看到imagePushedAt 。 例如
{ "imageDetails": [ { "imageDigest": "sha256:309b3ae71cf0780232cb013fb77507977625f8fe8cee868feca2649890ae073b", "repositoryName": "somerepo/someimage", "registryId": "12345", "imagePushedAt": 1485358557.0, "imageSizeInBytes": 8986900 }, { "imageDigest": "sha256:036a5da0dd8ef4a949293818cb05d15aaa31f2e8d9f464f9376667be9919e646", "repositoryName": "somerepo/someimage", "registryId": "12345", "imagePushedAt": 1485362799.0, "imageSizeInBytes": 8986643 }, ... and so on ...