estesp / manifest-tool

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

Provide a way to add a tag to an existing image #173

Open jsoref opened 2 years ago

jsoref commented 2 years ago

As described in #171, I have a multiarch image and want to add a new tag to it.

I'd really love to be able to just use manifest-tool tag <source-tag> <dest-tag> and have it do what I want.

I have a https://github.com/jsoref/manifest-tool/commit/retag-image script as a proof of concept.

-- It doesn't technically do the right thing for a single image, as it creates a manifest pointing to a single image instead of just adding a tag to the image, but I'm not sure there's a better way, and it saves me from downloading a 500+mb image when I don't need the image for my task. -- While the distinction in object types is technically observable, I suspect it doesn't practically matter.


A manifest-tool copy <source-tag> <dest-tag> in the case where I need to cross repositories would also be great. (Although, I could understand if manifest-tool thinks that's outside its scope.)

tianon commented 2 years ago

You might appreciate regclient or crane :eyes:

(https://github.com/regclient/regclient, https://github.com/google/go-containerregistry/blob/main/cmd/crane/doc/crane.md)

jsoref commented 2 years ago

I've used crane for other tasks... (It's on my todo list). Adding regclient.

Indeed, it seems that I don't need manifest-tool here, although it would be nice if the front page had refs. As finding the right tool for these tasks is way more painful/frustrating than it should be...