diff options
author | vroad <396351+vroad@users.noreply.github.com> | 2021-03-19 10:25:26 +0900 |
---|---|---|
committer | vroad <396351+vroad@users.noreply.github.com> | 2021-03-19 10:25:26 +0900 |
commit | b4d92811befd66f5ab86450b650e6f6c033f956b (patch) | |
tree | 99e4b0186973c093bf3a357d06fb0e75823def0c /pkgs/build-support | |
parent | 3ee1fb4f094db89cc40d78505b8d5d1eabf161d3 (diff) | |
download | nixpkgs-b4d92811befd66f5ab86450b650e6f6c033f956b.tar nixpkgs-b4d92811befd66f5ab86450b650e6f6c033f956b.tar.gz nixpkgs-b4d92811befd66f5ab86450b650e6f6c033f956b.tar.bz2 nixpkgs-b4d92811befd66f5ab86450b650e6f6c033f956b.tar.lz nixpkgs-b4d92811befd66f5ab86450b650e6f6c033f956b.tar.xz nixpkgs-b4d92811befd66f5ab86450b650e6f6c033f956b.tar.zst nixpkgs-b4d92811befd66f5ab86450b650e6f6c033f956b.zip |
dockerTools.streamLayeredImage: add fakeRootCommands option
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/docker/default.nix | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix index fec289f0ff1..8453ea4deed 100644 --- a/pkgs/build-support/docker/default.nix +++ b/pkgs/build-support/docker/default.nix @@ -7,6 +7,7 @@ coreutils, docker, e2fsprogs, + fakeroot, findutils, go, jq, @@ -738,6 +739,9 @@ rec { created ? "1970-01-01T00:00:01Z", # Optional bash script to run on the files prior to fixturizing the layer. extraCommands ? "", + # Optional bash script to run inside fakeroot environment. + # Could be used for changing ownership of files in customisation layer. + fakeRootCommands ? "", # We pick 100 to ensure there is plenty of room for extension. I # believe the actual maximum is 128. maxLayers ? 100 @@ -764,18 +768,24 @@ rec { name = "${baseName}-customisation-layer"; paths = contentsList; inherit extraCommands; + inherit fakeRootCommands; + nativeBuildInputs = [ fakeroot ]; postBuild = '' mv $out old_out (cd old_out; eval "$extraCommands" ) mkdir $out - tar \ - --sort name \ - --owner 0 --group 0 --mtime "@$SOURCE_DATE_EPOCH" \ - --hard-dereference \ - -C old_out \ - -cf $out/layer.tar . + fakeroot bash -c ' + set -e + cd old_out + eval "$fakeRootCommands" + tar \ + --sort name \ + --numeric-owner --mtime "@$SOURCE_DATE_EPOCH" \ + --hard-dereference \ + -cf $out/layer.tar . + ' sha256sum $out/layer.tar \ | cut -f 1 -d ' ' \ |