mirror of
https://github.com/containers/podman.git
synced 2025-07-04 10:10:32 +08:00
Handle hard links in different directories
Fixes: https://github.com/containers/podman/issues/10444 Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:

committed by
Matthew Heon

parent
5eecc2761b
commit
934f36df5e
@ -450,7 +450,7 @@ func nTar(excludes []string, sources ...string) (io.ReadCloser, error) {
|
||||
hdr.Typeflag = tar.TypeLink
|
||||
hdr.Linkname = orig
|
||||
hdr.Size = 0
|
||||
|
||||
hdr.Name = name
|
||||
return tw.WriteHeader(hdr)
|
||||
}
|
||||
f, err := os.Open(path)
|
||||
|
@ -768,19 +768,27 @@ EOF
|
||||
|
||||
@test "podman build COPY hardlinks " {
|
||||
tmpdir=$PODMAN_TMPDIR/build-test
|
||||
mkdir -p $tmpdir
|
||||
subdir=$tmpdir/subdir
|
||||
subsubdir=$subdir/subsubdir
|
||||
mkdir -p $subsubdir
|
||||
|
||||
dockerfile=$tmpdir/Dockerfile
|
||||
cat >$dockerfile <<EOF
|
||||
FROM $IMAGE
|
||||
COPY . /test
|
||||
EOF
|
||||
ln $dockerfile $tmpdir/hardlink
|
||||
ln $dockerfile $tmpdir/hardlink1
|
||||
ln $dockerfile $subdir/hardlink2
|
||||
ln $dockerfile $subsubdir/hardlink3
|
||||
|
||||
run_podman build -t build_test $tmpdir
|
||||
run_podman run --rm build_test stat -c '%i' /test/Dockerfile
|
||||
dinode=$output
|
||||
run_podman run --rm build_test stat -c '%i' /test/hardlink
|
||||
run_podman run --rm build_test stat -c '%i' /test/hardlink1
|
||||
is "$output" "$dinode" "COPY hardlinks work"
|
||||
run_podman run --rm build_test stat -c '%i' /test/subdir/hardlink2
|
||||
is "$output" "$dinode" "COPY hardlinks work"
|
||||
run_podman run --rm build_test stat -c '%i' /test/subdir/subsubdir/hardlink3
|
||||
is "$output" "$dinode" "COPY hardlinks work"
|
||||
|
||||
run_podman rmi -f build_test
|
||||
|
Reference in New Issue
Block a user