estesp / manifest-tool

Command line tool to create and query container image manifest list/indexes
Apache License 2.0
737 stars 92 forks source link

--raw flag doesn't show the same data as non-raw output #223

Closed marcosnils closed 1 year ago

marcosnils commented 1 year ago

example:

130|marcos:ctr/node (master) (⎈ |N/A)$ manifest-tool inspect public.ecr.aws/lambda/nodejs:16
Name:   public.ecr.aws/lambda/nodejs:16 (Type: application/vnd.docker.distribution.manifest.list.v2+json)
Digest: sha256:b045b001c43ce1581d0767f481a0d879a82c390bb908ce99674cd4304b5b5759
 * Contains 2 manifest references (2 images, 0 attestation):
[1]     Type: application/vnd.docker.distribution.manifest.v2+json
[1]   Digest: sha256:0fa2cd2b2b94788760ea4fce246046705a48055092bb63f4439be60489cd3782
[1]   Length: 1581
[1] Platform:
[1]    -      OS: linux
[1]    -    Arch: arm64
[1]    - Variant: v8
[1] # Layers: 6
     layer 01: digest = sha256:66234f0a68a25ca41d339553e82cd596e24fcbd8e5d2ec4627a5b451239ae73c
                 type = application/vnd.docker.image.rootfs.diff.tar.gzip
     layer 02: digest = sha256:75f20c28083cb83ae4dd9467c52f77b51f8e42eb90660baf65aa813d437edb8f
                 type = application/vnd.docker.image.rootfs.diff.tar.gzip
     layer 03: digest = sha256:ab3455912e4f400b31efd3f55706fc00fdd202e8e84e3611843a731373445646
                 type = application/vnd.docker.image.rootfs.diff.tar.gzip
     layer 04: digest = sha256:ae1f73b10027d9bdcdd22d0a9fe57ff274de67a04b2bc1daf4adb9e815624fdb
                 type = application/vnd.docker.image.rootfs.diff.tar.gzip
     layer 05: digest = sha256:bc624930524f7c9f9d0b065d60fa6ac6b957ad3317a4c0fc858472b2005701ab
                 type = application/vnd.docker.image.rootfs.diff.tar.gzip
     layer 06: digest = sha256:250b89df20aa7550835338288444797e110abbf5b694e15f79b584804927a7b0
                 type = application/vnd.docker.image.rootfs.diff.tar.gzip

[2]     Type: application/vnd.docker.distribution.manifest.v2+json
[2]   Digest: sha256:8e24f9237f7237d8d8f15f6dbe12f5d33e3b7083475a1dc6e2b99bb844b32c34
[2]   Length: 1581
[2] Platform:
[2]    -      OS: linux
[2]    -    Arch: amd64
[2] # Layers: 6
     layer 01: digest = sha256:79ebeeb5d423425ada3def2cf7860ccd71dfaad5c53d27fb028fe49e30e9739b
                 type = application/vnd.docker.image.rootfs.diff.tar.gzip
     layer 02: digest = sha256:371e994ee7bb079c7042b8cacdc2df6a66f6d62a7ef2276a15b3d5b8abaab558
                 type = application/vnd.docker.image.rootfs.diff.tar.gzip
     layer 03: digest = sha256:af7152a2776f0e4e304ad568c8f06d3d9784bea45803a38da47cf1059c62d25f
                 type = application/vnd.docker.image.rootfs.diff.tar.gzip
     layer 04: digest = sha256:c25f075f4917b41966ddf8b48135f2d1f870daac13ea5f1596e55e01a3c7a483
                 type = application/vnd.docker.image.rootfs.diff.tar.gzip
     layer 05: digest = sha256:987b62a898f9ee8b061a5373dd26596576d4ebf6cc7a3e19da88a59e68d9efe3
                 type = application/vnd.docker.image.rootfs.diff.tar.gzip
     layer 06: digest = sha256:876df78b645ce6034c733ad8023b45768348c65f1b07eec04891f62881066ffd
                 type = application/vnd.docker.image.rootfs.diff.tar.gzip

marcos:ctr/node (master) (⎈ |N/A)$
marcos:ctr/node (master) (⎈ |N/A)$ manifest-tool inspect --raw public.ecr.aws/lambda/nodejs:16
{"mediaType":"application/vnd.docker.distribution.manifest.list.v2+json","digest":"sha256:b045b001c43ce1581d0767f481a0d879a82c390bb908ce99674cd4304b5b5759","size":772}

I'd have expected the raw output to return the same info it returns without the flag but in a json format.

estesp commented 1 year ago

Good call; I had stubbed out the --raw implementation when re-writing v2 and obviously never went back and completed it. And hi @marcosnils 👋🏻 😄

marcosnils commented 1 year ago

hi @marcosnils 👋🏻

:wave: hey Phill!