diff options
author | Christian Kemper <christian.kemper@me.com> | 2022-11-21 12:10:07 +0000 |
---|---|---|
committer | Robert Hensing <robert@roberthensing.nl> | 2022-12-08 20:29:09 +0100 |
commit | f6ae4479ea712a7f478a4e0dce92bd06b6f75370 (patch) | |
tree | d4d1f0772797e9126daf51aea47c5d39d55fd040 /pkgs/build-support | |
parent | f21f11aa2a02cb78651c6d57546c7d7541f9240c (diff) |
dockerTools: allowing architecture to be specified
... for buildImage, buildLayeredImage and streamLayeredImage, adding docs and tests.
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/docker/default.nix | 14 | ||||
-rw-r--r-- | pkgs/build-support/docker/examples.nix | 15 |
2 files changed, 23 insertions, 6 deletions
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix index c6ab4589aefac..bc1b58a684fe2 100644 --- a/pkgs/build-support/docker/default.nix +++ b/pkgs/build-support/docker/default.nix @@ -101,8 +101,8 @@ rec { , imageDigest , sha256 , os ? "linux" - , arch ? defaultArch - + , # Image architecture, defaults to the architecture of the `hostPlatform` when unset + arch ? defaultArch # This is used to set name to the pulled image , finalImageName ? imageName # This used to set a tag to the pulled image @@ -514,6 +514,8 @@ rec { keepContentsDirlinks ? false , # Docker config; e.g. what command to run on the container. config ? null + , # Image architecture, defaults to the architecture of the `hostPlatform` when unset + architecture ? defaultArch , # Optional bash script to run on the files prior to fixturizing the layer. extraCommands ? "" , uid ? 0 @@ -546,8 +548,7 @@ rec { baseJson = let pure = writeText "${baseName}-config.json" (builtins.toJSON { - inherit created config; - architecture = defaultArch; + inherit created config architecture; preferLocalBuild = true; os = "linux"; }); @@ -838,6 +839,8 @@ rec { contents ? [ ] , # Docker config; e.g. what command to run on the container. config ? { } + , # Image architecture, defaults to the architecture of the `hostPlatform` when unset + architecture ? defaultArch , # Time of creation of the image. Passing "now" will make the # created date be the time of building. created ? "1970-01-01T00:00:01Z" @@ -869,8 +872,7 @@ rec { streamScript = writePython3 "stream" { } ./stream_layered_image.py; baseJson = writeText "${baseName}-base.json" (builtins.toJSON { - inherit config; - architecture = defaultArch; + inherit config architecture; os = "linux"; }); diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix index 71c3574963c88..80661c1a7d9a1 100644 --- a/pkgs/build-support/docker/examples.nix +++ b/pkgs/build-support/docker/examples.nix @@ -700,6 +700,21 @@ rec { contents = [ pkgs.bashInteractive ./test-dummy ]; }; + build-image-with-architecture = buildImage { + name = "build-image-with-architecture"; + tag = "latest"; + architecture = "arm64"; + # Not recommended. Use `buildEnv` between copy and packages to avoid file duplication. + copyToRoot = [ pkgs.bashInteractive ./test-dummy ]; + }; + + layered-image-with-architecture = pkgs.dockerTools.streamLayeredImage { + name = "layered-image-with-architecture"; + tag = "latest"; + architecture = "arm64"; + contents = [ pkgs.bashInteractive ./test-dummy ]; + }; + # ensure that caCertificates builds image-with-certs = buildImage { name = "image-with-certs"; |