mirror of
https://github.com/containers/podman.git
synced 2025-08-06 11:32:07 +08:00
Add support for podman remote build -f - .
Fixes: https://github.com/containers/podman/issues/10621 Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
@ -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)
|
||||
|
@ -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"
|
||||
|
||||
|
Reference in New Issue
Block a user