dockerTools: add finalImageName parameter for pullImage
This commit is contained in:
parent
c10bc73988
commit
468df177c4
@ -417,10 +417,11 @@ pkgs.dockerTools.buildLayeredImage {
|
|||||||
pullImage {
|
pullImage {
|
||||||
imageName = "nixos/nix"; <co xml:id='ex-dockerTools-pullImage-1' />
|
imageName = "nixos/nix"; <co xml:id='ex-dockerTools-pullImage-1' />
|
||||||
imageDigest = "sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b"; <co xml:id='ex-dockerTools-pullImage-2' />
|
imageDigest = "sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b"; <co xml:id='ex-dockerTools-pullImage-2' />
|
||||||
finalImageTag = "1.11"; <co xml:id='ex-dockerTools-pullImage-3' />
|
finalImageName = "nix"; <co xml:id='ex-dockerTools-pullImage-3' />
|
||||||
sha256 = "0mqjy3zq2v6rrhizgb9nvhczl87lcfphq9601wcprdika2jz7qh8"; <co xml:id='ex-dockerTools-pullImage-4' />
|
finalImageTag = "1.11"; <co xml:id='ex-dockerTools-pullImage-4' />
|
||||||
os = "linux"; <co xml:id='ex-dockerTools-pullImage-5' />
|
sha256 = "0mqjy3zq2v6rrhizgb9nvhczl87lcfphq9601wcprdika2jz7qh8"; <co xml:id='ex-dockerTools-pullImage-5' />
|
||||||
arch = "x86_64"; <co xml:id='ex-dockerTools-pullImage-6' />
|
os = "linux"; <co xml:id='ex-dockerTools-pullImage-6' />
|
||||||
|
arch = "x86_64"; <co xml:id='ex-dockerTools-pullImage-7' />
|
||||||
}
|
}
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</example>
|
</example>
|
||||||
@ -451,6 +452,14 @@ sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b
|
|||||||
</para>
|
</para>
|
||||||
</callout>
|
</callout>
|
||||||
<callout arearefs='ex-dockerTools-pullImage-3'>
|
<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>
|
<para>
|
||||||
<varname>finalImageTag</varname>, if specified, this is the tag of the
|
<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
|
image to be created. Note it is never used to fetch the image since we
|
||||||
@ -458,19 +467,19 @@ sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b
|
|||||||
<literal>latest</literal>.
|
<literal>latest</literal>.
|
||||||
</para>
|
</para>
|
||||||
</callout>
|
</callout>
|
||||||
<callout arearefs='ex-dockerTools-pullImage-4'>
|
<callout arearefs='ex-dockerTools-pullImage-5'>
|
||||||
<para>
|
<para>
|
||||||
<varname>sha256</varname> is the checksum of the whole fetched image. This
|
<varname>sha256</varname> is the checksum of the whole fetched image. This
|
||||||
argument is required.
|
argument is required.
|
||||||
</para>
|
</para>
|
||||||
</callout>
|
</callout>
|
||||||
<callout arearefs='ex-dockerTools-pullImage-5'>
|
<callout arearefs='ex-dockerTools-pullImage-6'>
|
||||||
<para>
|
<para>
|
||||||
<varname>os</varname>, if specified, is the operating system of the
|
<varname>os</varname>, if specified, is the operating system of the
|
||||||
fetched image. By default it's <literal>linux</literal>.
|
fetched image. By default it's <literal>linux</literal>.
|
||||||
</para>
|
</para>
|
||||||
</callout>
|
</callout>
|
||||||
<callout arearefs='ex-dockerTools-pullImage-6'>
|
<callout arearefs='ex-dockerTools-pullImage-7'>
|
||||||
<para>
|
<para>
|
||||||
<varname>arch</varname>, if specified, is the cpu architecture of the
|
<varname>arch</varname>, if specified, is the cpu architecture of the
|
||||||
fetched image. By default it's <literal>x86_64</literal>.
|
fetched image. By default it's <literal>x86_64</literal>.
|
||||||
|
@ -34,8 +34,8 @@ import ./make-test.nix ({ pkgs, ... }: {
|
|||||||
|
|
||||||
# To test the pullImage tool
|
# To test the pullImage tool
|
||||||
$docker->succeed("docker load --input='${pkgs.dockerTools.examples.nixFromDockerHub}'");
|
$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 run --rm nix:2.2.1 nix-store --version");
|
||||||
$docker->succeed("docker rmi nixos/nix:2.2.1");
|
$docker->succeed("docker rmi nix:2.2.1");
|
||||||
|
|
||||||
# To test runAsRoot and entry point
|
# To test runAsRoot and entry point
|
||||||
$docker->succeed("docker load --input='${pkgs.dockerTools.examples.nginx}'");
|
$docker->succeed("docker load --input='${pkgs.dockerTools.examples.nginx}'");
|
||||||
|
@ -45,13 +45,18 @@ rec {
|
|||||||
, sha256
|
, sha256
|
||||||
, os ? "linux"
|
, os ? "linux"
|
||||||
, arch ? "amd64"
|
, arch ? "amd64"
|
||||||
|
|
||||||
|
# This is used to set name to the pulled image
|
||||||
|
, finalImageName ? imageName
|
||||||
# This used to set a tag to the pulled image
|
# This used to set a tag to the pulled image
|
||||||
, finalImageTag ? "latest"
|
, finalImageTag ? "latest"
|
||||||
, name ? fixName "docker-image-${imageName}-${finalImageTag}.tar"
|
|
||||||
|
, name ? fixName "docker-image-${finalImageName}-${finalImageTag}.tar"
|
||||||
}:
|
}:
|
||||||
|
|
||||||
runCommand name {
|
runCommand name {
|
||||||
inherit imageName imageDigest;
|
inherit imageDigest;
|
||||||
|
imageName = finalImageName;
|
||||||
imageTag = finalImageTag;
|
imageTag = finalImageTag;
|
||||||
impureEnvVars = pkgs.stdenv.lib.fetchers.proxyImpureEnvVars;
|
impureEnvVars = pkgs.stdenv.lib.fetchers.proxyImpureEnvVars;
|
||||||
outputHashMode = "flat";
|
outputHashMode = "flat";
|
||||||
@ -62,7 +67,7 @@ rec {
|
|||||||
SSL_CERT_FILE = "${pkgs.cacert.out}/etc/ssl/certs/ca-bundle.crt";
|
SSL_CERT_FILE = "${pkgs.cacert.out}/etc/ssl/certs/ca-bundle.crt";
|
||||||
|
|
||||||
sourceURL = "docker://${imageName}@${imageDigest}";
|
sourceURL = "docker://${imageName}@${imageDigest}";
|
||||||
destNameTag = "${imageName}:${finalImageTag}";
|
destNameTag = "${finalImageName}:${finalImageTag}";
|
||||||
} ''
|
} ''
|
||||||
skopeo --override-os ${os} --override-arch ${arch} copy "$sourceURL" "docker-archive://$out:$destNameTag"
|
skopeo --override-os ${os} --override-arch ${arch} copy "$sourceURL" "docker-archive://$out:$destNameTag"
|
||||||
'';
|
'';
|
||||||
|
@ -88,8 +88,9 @@ rec {
|
|||||||
nixFromDockerHub = pullImage {
|
nixFromDockerHub = pullImage {
|
||||||
imageName = "nixos/nix";
|
imageName = "nixos/nix";
|
||||||
imageDigest = "sha256:85299d86263a3059cf19f419f9d286cc9f06d3c13146a8ebbb21b3437f598357";
|
imageDigest = "sha256:85299d86263a3059cf19f419f9d286cc9f06d3c13146a8ebbb21b3437f598357";
|
||||||
sha256 = "0vnp3mhpk4ny3xa3cgngqsargnmvfgld54d5sn4b5av6yqzzp67z";
|
sha256 = "07q9y9r7fsd18sy95ybrvclpkhlal12d30ybnf089hq7v1hgxbi7";
|
||||||
finalImageTag = "2.2.1";
|
finalImageTag = "2.2.1";
|
||||||
|
finalImageName = "nix";
|
||||||
};
|
};
|
||||||
|
|
||||||
# 5. example of multiple contents, emacs and vi happily coexisting
|
# 5. example of multiple contents, emacs and vi happily coexisting
|
||||||
|
Loading…
Reference in New Issue
Block a user