diff options
author | lewo <lewo@abesis.fr> | 2020-02-14 09:48:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-14 09:48:52 +0100 |
commit | d49804cf456c01735c7d728c4acf88476a5be811 (patch) | |
tree | fb57fa402f1b1c64c8bbdb77f59fe86890e39805 /pkgs/build-support | |
parent | d7b8edf72399662b87d8ba95d85b54b54895a899 (diff) | |
parent | baa78de59403a69936bd9fc4709707d600926308 (diff) | |
download | nixlib-d49804cf456c01735c7d728c4acf88476a5be811.tar nixlib-d49804cf456c01735c7d728c4acf88476a5be811.tar.gz nixlib-d49804cf456c01735c7d728c4acf88476a5be811.tar.bz2 nixlib-d49804cf456c01735c7d728c4acf88476a5be811.tar.lz nixlib-d49804cf456c01735c7d728c4acf88476a5be811.tar.xz nixlib-d49804cf456c01735c7d728c4acf88476a5be811.tar.zst nixlib-d49804cf456c01735c7d728c4acf88476a5be811.zip |
Merge pull request #80102 from nlewo/fix-78744
dockerTools.buildLayeredImage: store all paths passed in final layer (fix 78744)
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/docker/examples.nix | 12 | ||||
-rwxr-xr-x | pkgs/build-support/docker/store-path-to-layer.sh | 21 |
2 files changed, 22 insertions, 11 deletions
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix index a1f71d35793c..f0dcf236c0e4 100644 --- a/pkgs/build-support/docker/examples.nix +++ b/pkgs/build-support/docker/examples.nix @@ -246,4 +246,16 @@ rec { contents = [ pkgs.bash pkgs.hello ]; maxLayers = 2; }; + + # 16. Create a layered image with more packages than max layers. + # coreutils and hello are part of the same layer + bulk-layer = pkgs.dockerTools.buildLayeredImage { + name = "bulk-layer"; + tag = "latest"; + contents = with pkgs; [ + coreutils hello + ]; + maxLayers = 2; + }; + } diff --git a/pkgs/build-support/docker/store-path-to-layer.sh b/pkgs/build-support/docker/store-path-to-layer.sh index c808abab7a8a..7e8efeea1c10 100755 --- a/pkgs/build-support/docker/store-path-to-layer.sh +++ b/pkgs/build-support/docker/store-path-to-layer.sh @@ -5,11 +5,8 @@ set -eu layerNumber=$1 shift -storePath="$1" -shift - layerPath="./layers/$layerNumber" -echo "Creating layer #$layerNumber for $storePath" +echo "Creating layer #$layerNumber for $@" mkdir -p "$layerPath" @@ -35,13 +32,15 @@ tar -cf "$layerPath/layer.tar" \ # to /nix/store. In order to create the correct structure # in the tar file, we transform the relative nix store # path to the absolute store path. -n=$(basename "$storePath") -tar -C /nix/store -rpf "$layerPath/layer.tar" \ - --hard-dereference --sort=name \ - --mtime="@$SOURCE_DATE_EPOCH" \ - --owner=0 --group=0 \ - --transform="s,$n,/nix/store/$n," \ - $n +for storePath in "$@"; do + n=$(basename "$storePath") + tar -C /nix/store -rpf "$layerPath/layer.tar" \ + --hard-dereference --sort=name \ + --mtime="@$SOURCE_DATE_EPOCH" \ + --owner=0 --group=0 \ + --transform="s,$n,/nix/store/$n," \ + $n +done # Compute a checksum of the tarball. tarhash=$(tarsum < $layerPath/layer.tar) |