From 373ec2cf8ce97d5f89191c3d9211ee3a5c2067dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Tempel?= Date: Sat, 14 Oct 2023 11:38:56 +0200 Subject: [PATCH] pack: Allow setting a custom image tag for Docker images MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, the image repository name was automatically computed from the packages in the manifest without allowing the user to set a custom one. As such, changing the packages in the manifest would result in a new image name. Thereby requiring updating documentation et cetera when using `docker load` directory on the resulting image. Inspired by `docker build -t`, this commit adds a new Docker-specific option to `guix pack` which allows setting a custom repository name for the resulting image. If this option is not specified, pack falls back to computing the name from the manifest. Therefore, this change is entirely backwards compatible. * guix/scripts/pack.scm (guix-pack): Add --image-tag option. (%docker-format-options): New constant. (show-docker-format-options): New procedure. (show-docker-format-options/detailed): New procedure. (docker-image): Allow setting a custom repository name for the created docker image via extra-options. * doc/guix.texi (Invoking guix pack)[docker]: Document --image-tag option. Signed-off-by: Sören Tempel Signed-off-by: Mathieu Othacehe --- doc/guix.texi | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 083504dcb86..3a9a909df81 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7314,9 +7314,12 @@ specified binaries and symlinks. @item docker This produces a tarball that follows the @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, -Docker Image Specification}. The ``repository name'' as it appears in -the output of the @command{docker images} command is computed from -package names passed on the command line or in the manifest file. +Docker Image Specification}. By default, the ``repository name'' as it +appears in the output of the @command{docker images} command is computed +from package names passed on the command line or in the manifest file. +Alternatively, the ``repository name'' can also be configured via the +@option{--image-tag} option. Refer to @option{--help-docker-format} for +more information on such advanced options. @item squashfs This produces a SquashFS image containing all the specified binaries and