mirror of
https://github.com/containers/podman.git
synced 2025-06-24 19:42:56 +08:00
Merge pull request #13210 from rhatdan/build
Make sure building with relative paths work correctly.
This commit is contained in:
@ -352,11 +352,13 @@ func Build(ctx context.Context, containerFiles []string, options entities.BuildO
|
|||||||
}
|
}
|
||||||
c = tmpFile.Name()
|
c = tmpFile.Name()
|
||||||
}
|
}
|
||||||
|
c = filepath.Clean(c)
|
||||||
cfDir := filepath.Dir(c)
|
cfDir := filepath.Dir(c)
|
||||||
if absDir, err := filepath.EvalSymlinks(cfDir); err == nil {
|
if absDir, err := filepath.EvalSymlinks(cfDir); err == nil {
|
||||||
name := filepath.ToSlash(strings.TrimPrefix(c, cfDir+string(filepath.Separator)))
|
name := filepath.ToSlash(strings.TrimPrefix(c, cfDir+string(filepath.Separator)))
|
||||||
c = filepath.Join(absDir, name)
|
c = filepath.Join(absDir, name)
|
||||||
}
|
}
|
||||||
|
|
||||||
containerfile, err := filepath.Abs(c)
|
containerfile, err := filepath.Abs(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.Errorf("Cannot find absolute path of %v: %v", c, err)
|
logrus.Errorf("Cannot find absolute path of %v: %v", c, err)
|
||||||
|
@ -88,12 +88,10 @@ EOF
|
|||||||
containerfile=$PODMAN_TMPDIR/Containerfile
|
containerfile=$PODMAN_TMPDIR/Containerfile
|
||||||
cat >$containerfile <<EOF
|
cat >$containerfile <<EOF
|
||||||
FROM $IMAGE
|
FROM $IMAGE
|
||||||
RUN apk add nginx
|
|
||||||
RUN echo $rand_content > /$rand_filename
|
RUN echo $rand_content > /$rand_filename
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# The 'apk' command can take a long time to fetch files; bump timeout
|
run_podman build -t build_test -f - --format=docker $tmpdir < $containerfile
|
||||||
PODMAN_TIMEOUT=240 run_podman build -t build_test -f - --format=docker $tmpdir < $containerfile
|
|
||||||
is "$output" ".*COMMIT" "COMMIT seen in log"
|
is "$output" ".*COMMIT" "COMMIT seen in log"
|
||||||
|
|
||||||
run_podman run --rm build_test cat /$rand_filename
|
run_podman run --rm build_test cat /$rand_filename
|
||||||
@ -188,6 +186,30 @@ EOF
|
|||||||
run_podman rmi -f build_test $iid
|
run_podman rmi -f build_test $iid
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "podman build test -f ./relative" {
|
||||||
|
rand_filename=$(random_string 20)
|
||||||
|
rand_content=$(random_string 50)
|
||||||
|
|
||||||
|
tmpdir=$PODMAN_TMPDIR/build-test
|
||||||
|
mkdir -p $tmpdir
|
||||||
|
mkdir -p $PODMAN_TMPDIR/reldir
|
||||||
|
|
||||||
|
containerfile=$PODMAN_TMPDIR/reldir/Containerfile
|
||||||
|
cat >$containerfile <<EOF
|
||||||
|
FROM $IMAGE
|
||||||
|
RUN echo $rand_content > /$rand_filename
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cd $PODMAN_TMPDIR
|
||||||
|
run_podman build -t build_test -f ./reldir/Containerfile --format=docker $tmpdir
|
||||||
|
is "$output" ".*COMMIT" "COMMIT seen in log"
|
||||||
|
|
||||||
|
run_podman run --rm build_test cat /$rand_filename
|
||||||
|
is "$output" "$rand_content" "reading generated file in image"
|
||||||
|
|
||||||
|
run_podman rmi -f build_test
|
||||||
|
}
|
||||||
|
|
||||||
@test "podman build - URLs" {
|
@test "podman build - URLs" {
|
||||||
tmpdir=$PODMAN_TMPDIR/build-test
|
tmpdir=$PODMAN_TMPDIR/build-test
|
||||||
mkdir -p $tmpdir
|
mkdir -p $tmpdir
|
||||||
|
Reference in New Issue
Block a user