about summary refs log tree commit diff
path: root/pkgs/build-support/docker/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/build-support/docker/default.nix')
-rw-r--r--pkgs/build-support/docker/default.nix13
1 files changed, 8 insertions, 5 deletions
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index f874354b15ed8..5ead82dee8b51 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -286,17 +286,20 @@ EOF
         cp ${layer}/* temp/
         chmod ug+w temp/*
 
-        # FIXME: might not be /nix/store
-        echo '/nix' >> layerFiles
-        echo '/nix/store' >> layerFiles
         for dep in $(cat $layerClosure); do
-          find $dep >> layerFiles
+          find $dep -path "${layer}" -prune -o -print >> layerFiles
         done
 
+        if [ -s layerFiles ]; then
+          # FIXME: might not be /nix/store
+          echo '/nix' >> layerFiles
+          echo '/nix/store' >> layerFiles
+        fi
+
         echo Adding layer
         tar -tf temp/layer.tar >> baseFiles
         sed 's/^\.//' -i baseFiles
-        comm <(sort -n baseFiles|uniq) <(sort -n layerFiles|uniq|grep -v ${layer}) -1 -3 > newFiles
+        comm <(sort -u baseFiles) <(sort -u layerFiles) -1 -3 > newFiles
         tar -rpf temp/layer.tar --mtime=0 --no-recursion --files-from newFiles 2>/dev/null || true
 
         echo Adding meta