summary refs log tree commit diff
path: root/pkgs/build-support/docker
diff options
context:
space:
mode:
authorSarah Brofeldt <sarah@qtr.dk>2021-01-04 19:39:21 +0100
committerSarah Brofeldt <sarah@qtr.dk>2021-01-04 19:47:34 +0100
commit08b0d02944eb94359726ac61af3c3ab84b53ee7d (patch)
tree73379e03c2d60c92bce0d3a5f6e9cbab3f912cbc /pkgs/build-support/docker
parent56bb1b0f7a33e5d487dc2bf2e846794f4dcb4d01 (diff)
downloadnixpkgs-08b0d02944eb94359726ac61af3c3ab84b53ee7d.tar
nixpkgs-08b0d02944eb94359726ac61af3c3ab84b53ee7d.tar.gz
nixpkgs-08b0d02944eb94359726ac61af3c3ab84b53ee7d.tar.bz2
nixpkgs-08b0d02944eb94359726ac61af3c3ab84b53ee7d.tar.lz
nixpkgs-08b0d02944eb94359726ac61af3c3ab84b53ee7d.tar.xz
nixpkgs-08b0d02944eb94359726ac61af3c3ab84b53ee7d.tar.zst
nixpkgs-08b0d02944eb94359726ac61af3c3ab84b53ee7d.zip
dockerTools: Fix streamLayeredImage for symlinks
When archiving `/nix/store/foo` and `foo` is itself a symlink, we must
not traverse the symlink target, but archive the `foo` symlink itself
Diffstat (limited to 'pkgs/build-support/docker')
-rw-r--r--pkgs/build-support/docker/stream_layered_image.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/pkgs/build-support/docker/stream_layered_image.py b/pkgs/build-support/docker/stream_layered_image.py
index cbae0f723f9..e35bd0b0e8c 100644
--- a/pkgs/build-support/docker/stream_layered_image.py
+++ b/pkgs/build-support/docker/stream_layered_image.py
@@ -83,7 +83,11 @@ def archive_paths_to(obj, paths, mtime):
 
         for path in paths:
             path = pathlib.Path(path)
-            files = itertools.chain([path], path.rglob("*"))
+            if path.is_symlink():
+                files = [path]
+            else:
+                files = itertools.chain([path], path.rglob("*"))
+
             for filename in sorted(files):
                 ti = append_root(tar.gettarinfo(filename))