dockerTools: Correctly unpack duplicate rootfs diffs

This PR addresses issue #214434 by preventing
dockerTools.buildImage from deleting rootfs diffs until after
they've been unpacked.
This commit is contained in:
Andrew Brooks 2023-02-03 17:50:36 -06:00
parent 6f63865cf4
commit f4e4cac0c8

View File

@ -259,13 +259,14 @@ rec {
mkdir -p image/$extractionID/layer
tar -C image/$extractionID/layer -xpf image/$layerTar
rm image/$layerTar
find image/$extractionID/layer -name ".wh.*" -exec bash -c 'name="$(basename {}|sed "s/^.wh.//")"; mknod "$(dirname {})/$name" c 0 0; rm {}' \;
# Get the next lower directory and continue the loop.
lowerdir=image/$extractionID/layer''${lowerdir:+:}$lowerdir
done
# Don't remove tarballs until all unpacked in case some are used more than once
awk '{print "image/"$0}' layer-list | xargs rm -f
mkdir work
mkdir layer