diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-06-14 13:04:03 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-14 13:04:03 -0400 |
commit | e2f51eeb0693eda026fa509a9decfbdd7e0b74a8 (patch) | |
tree | 6338e8caec8685040a541d3c43ff64db959e919b | |
parent | e3dd12a2bed03ae7ad221eefd7b92ddef2a59888 (diff) | |
parent | 3a65ba2fab7a9790a8a9652178929e4290ee76b4 (diff) | |
download | podman-e2f51eeb0693eda026fa509a9decfbdd7e0b74a8.tar.gz podman-e2f51eeb0693eda026fa509a9decfbdd7e0b74a8.tar.bz2 podman-e2f51eeb0693eda026fa509a9decfbdd7e0b74a8.zip |
Merge pull request #10651 from rhatdan/build
Add support for podman remote build -f - .
-rw-r--r-- | pkg/bindings/images/build.go | 16 | ||||
-rw-r--r-- | test/system/070-build.bats | 23 |
2 files changed, 39 insertions, 0 deletions
diff --git a/pkg/bindings/images/build.go b/pkg/bindings/images/build.go index c7d432b16..937d05330 100644 --- a/pkg/bindings/images/build.go +++ b/pkg/bindings/images/build.go @@ -299,6 +299,22 @@ func Build(ctx context.Context, containerFiles []string, options entities.BuildO tarContent := []string{options.ContextDirectory} newContainerFiles := []string{} for _, c := range containerFiles { + if c == "/dev/stdin" { + content, err := ioutil.ReadAll(os.Stdin) + if err != nil { + return nil, err + } + tmpFile, err := ioutil.TempFile("", "build") + if err != nil { + return nil, err + } + defer os.Remove(tmpFile.Name()) // clean up + defer tmpFile.Close() + if _, err := tmpFile.Write(content); err != nil { + return nil, err + } + c = tmpFile.Name() + } containerfile, err := filepath.Abs(c) if err != nil { logrus.Errorf("cannot find absolute path of %v: %v", c, err) diff --git a/test/system/070-build.bats b/test/system/070-build.bats index 40622d6cc..6843e28a5 100644 --- a/test/system/070-build.bats +++ b/test/system/070-build.bats @@ -29,6 +29,29 @@ EOF run_podman rmi -f build_test } +@test "podman build test -f -" { + rand_filename=$(random_string 20) + rand_content=$(random_string 50) + + tmpdir=$PODMAN_TMPDIR/build-test + mkdir -p $tmpdir + containerfile=$PODMAN_TMPDIR/Containerfile + cat >$containerfile <<EOF +FROM $IMAGE +RUN apk add nginx +RUN echo $rand_content > /$rand_filename +EOF + + # The 'apk' command can take a long time to fetch files; bump timeout + PODMAN_TIMEOUT=240 run_podman build -t build_test -f - --format=docker $tmpdir < $containerfile + is "$output" ".*STEP 4: 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 - global runtime flags test" { skip_if_remote "--runtime-flag flag not supported for remote" |