diff options
author | Jaka Hudoklin <jaka@gatehub.net> | 2019-03-26 10:35:21 +0100 |
---|---|---|
committer | Jaka Hudoklin <jaka@gatehub.net> | 2019-03-26 19:35:14 +0100 |
commit | 468df177c4f01bce239da426710484fbc7b5a89d (patch) | |
tree | af590b97a67010b7c99f768817c71bd19ec85f6d | |
parent | c10bc73988d520b8a6c3051a58583f2d73c95e99 (diff) | |
download | nixpkgs-468df177c4f01bce239da426710484fbc7b5a89d.tar nixpkgs-468df177c4f01bce239da426710484fbc7b5a89d.tar.gz nixpkgs-468df177c4f01bce239da426710484fbc7b5a89d.tar.bz2 nixpkgs-468df177c4f01bce239da426710484fbc7b5a89d.tar.lz nixpkgs-468df177c4f01bce239da426710484fbc7b5a89d.tar.xz nixpkgs-468df177c4f01bce239da426710484fbc7b5a89d.tar.zst nixpkgs-468df177c4f01bce239da426710484fbc7b5a89d.zip |
dockerTools: add finalImageName parameter for pullImage
-rw-r--r-- | doc/functions/dockertools.xml | 23 | ||||
-rw-r--r-- | nixos/tests/docker-tools.nix | 4 | ||||
-rw-r--r-- | pkgs/build-support/docker/default.nix | 11 | ||||
-rw-r--r-- | pkgs/build-support/docker/examples.nix | 3 |
4 files changed, 28 insertions, 13 deletions
diff --git a/doc/functions/dockertools.xml b/doc/functions/dockertools.xml index 75db0bd3918..cb32db74b42 100644 --- a/doc/functions/dockertools.xml +++ b/doc/functions/dockertools.xml @@ -417,10 +417,11 @@ pkgs.dockerTools.buildLayeredImage { pullImage { imageName = "nixos/nix"; <co xml:id='ex-dockerTools-pullImage-1' /> imageDigest = "sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b"; <co xml:id='ex-dockerTools-pullImage-2' /> - finalImageTag = "1.11"; <co xml:id='ex-dockerTools-pullImage-3' /> - sha256 = "0mqjy3zq2v6rrhizgb9nvhczl87lcfphq9601wcprdika2jz7qh8"; <co xml:id='ex-dockerTools-pullImage-4' /> - os = "linux"; <co xml:id='ex-dockerTools-pullImage-5' /> - arch = "x86_64"; <co xml:id='ex-dockerTools-pullImage-6' /> + finalImageName = "nix"; <co xml:id='ex-dockerTools-pullImage-3' /> + finalImageTag = "1.11"; <co xml:id='ex-dockerTools-pullImage-4' /> + sha256 = "0mqjy3zq2v6rrhizgb9nvhczl87lcfphq9601wcprdika2jz7qh8"; <co xml:id='ex-dockerTools-pullImage-5' /> + os = "linux"; <co xml:id='ex-dockerTools-pullImage-6' /> + arch = "x86_64"; <co xml:id='ex-dockerTools-pullImage-7' /> } </programlisting> </example> @@ -452,25 +453,33 @@ sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b </callout> <callout arearefs='ex-dockerTools-pullImage-3'> <para> + <varname>finalImageName</varname>, if specified, this is the name of the + image to be created. Note it is never used to fetch the image since we + prefer to rely on the immutable digest ID. By default it's equal to + <varname>imageName</varname>. + </para> + </callout> + <callout arearefs='ex-dockerTools-pullImage-4'> + <para> <varname>finalImageTag</varname>, if specified, this is the tag of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's <literal>latest</literal>. </para> </callout> - <callout arearefs='ex-dockerTools-pullImage-4'> + <callout arearefs='ex-dockerTools-pullImage-5'> <para> <varname>sha256</varname> is the checksum of the whole fetched image. This argument is required. </para> </callout> - <callout arearefs='ex-dockerTools-pullImage-5'> + <callout arearefs='ex-dockerTools-pullImage-6'> <para> <varname>os</varname>, if specified, is the operating system of the fetched image. By default it's <literal>linux</literal>. </para> </callout> - <callout arearefs='ex-dockerTools-pullImage-6'> + <callout arearefs='ex-dockerTools-pullImage-7'> <para> <varname>arch</varname>, if specified, is the cpu architecture of the fetched image. By default it's <literal>x86_64</literal>. diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix index 399e4d4e428..502b537ed68 100644 --- a/nixos/tests/docker-tools.nix +++ b/nixos/tests/docker-tools.nix @@ -34,8 +34,8 @@ import ./make-test.nix ({ pkgs, ... }: { # To test the pullImage tool $docker->succeed("docker load --input='${pkgs.dockerTools.examples.nixFromDockerHub}'"); - $docker->succeed("docker run --rm nixos/nix:2.2.1 nix-store --version"); - $docker->succeed("docker rmi nixos/nix:2.2.1"); + $docker->succeed("docker run --rm nix:2.2.1 nix-store --version"); + $docker->succeed("docker rmi nix:2.2.1"); # To test runAsRoot and entry point $docker->succeed("docker load --input='${pkgs.dockerTools.examples.nginx}'"); diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix index 6efb447e142..ef93c97fd4d 100644 --- a/pkgs/build-support/docker/default.nix +++ b/pkgs/build-support/docker/default.nix @@ -45,13 +45,18 @@ rec { , sha256 , os ? "linux" , arch ? "amd64" + + # This is used to set name to the pulled image + , finalImageName ? imageName # This used to set a tag to the pulled image , finalImageTag ? "latest" - , name ? fixName "docker-image-${imageName}-${finalImageTag}.tar" + + , name ? fixName "docker-image-${finalImageName}-${finalImageTag}.tar" }: runCommand name { - inherit imageName imageDigest; + inherit imageDigest; + imageName = finalImageName; imageTag = finalImageTag; impureEnvVars = pkgs.stdenv.lib.fetchers.proxyImpureEnvVars; outputHashMode = "flat"; @@ -62,7 +67,7 @@ rec { SSL_CERT_FILE = "${pkgs.cacert.out}/etc/ssl/certs/ca-bundle.crt"; sourceURL = "docker://${imageName}@${imageDigest}"; - destNameTag = "${imageName}:${finalImageTag}"; + destNameTag = "${finalImageName}:${finalImageTag}"; } '' skopeo --override-os ${os} --override-arch ${arch} copy "$sourceURL" "docker-archive://$out:$destNameTag" ''; diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix index 8a1b35f02d9..557a4dbf54b 100644 --- a/pkgs/build-support/docker/examples.nix +++ b/pkgs/build-support/docker/examples.nix @@ -88,8 +88,9 @@ rec { nixFromDockerHub = pullImage { imageName = "nixos/nix"; imageDigest = "sha256:85299d86263a3059cf19f419f9d286cc9f06d3c13146a8ebbb21b3437f598357"; - sha256 = "0vnp3mhpk4ny3xa3cgngqsargnmvfgld54d5sn4b5av6yqzzp67z"; + sha256 = "07q9y9r7fsd18sy95ybrvclpkhlal12d30ybnf089hq7v1hgxbi7"; finalImageTag = "2.2.1"; + finalImageName = "nix"; }; # 5. example of multiple contents, emacs and vi happily coexisting |