summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHironori Shiina <Hironori.Shiina@fujitsu.com>2020-12-22 21:48:07 -0500
committerHironori Shiina <Hironori.Shiina@fujitsu.com>2020-12-22 21:48:07 -0500
commitd61887037df6b7a4449b49145cdfd7941ab2d874 (patch)
tree255e3a47a63468f618ce868b6a0b56041ec029ee
parent07663f74c48d11732a3330248f837d5abf86fe9c (diff)
downloadpodman-d61887037df6b7a4449b49145cdfd7941ab2d874.tar.gz
podman-d61887037df6b7a4449b49145cdfd7941ab2d874.tar.bz2
podman-d61887037df6b7a4449b49145cdfd7941ab2d874.zip
Fix podman build --logfile
A opened file object of a logfile gets lost because the variable `logfile` is redefined in a `if` block. This fix stops redefining the variable. Signed-off-by: Hironori Shiina <Hironori.Shiina@fujitsu.com>
-rw-r--r--cmd/podman/images/build.go3
-rw-r--r--test/system/070-build.bats17
2 files changed, 19 insertions, 1 deletions
diff --git a/cmd/podman/images/build.go b/cmd/podman/images/build.go
index fbea1e3d8..3aca104e3 100644
--- a/cmd/podman/images/build.go
+++ b/cmd/podman/images/build.go
@@ -221,7 +221,8 @@ func build(cmd *cobra.Command, args []string) error {
var logfile *os.File
if cmd.Flag("logfile").Changed {
- logfile, err := os.OpenFile(buildOpts.Logfile, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0600)
+ var err error
+ logfile, err = os.OpenFile(buildOpts.Logfile, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0600)
if err != nil {
return err
}
diff --git a/test/system/070-build.bats b/test/system/070-build.bats
index 8e9a2d613..048cf535d 100644
--- a/test/system/070-build.bats
+++ b/test/system/070-build.bats
@@ -424,6 +424,23 @@ EOF
run_podman rmi -a --force
}
+@test "podman build --logfile test" {
+ tmpdir=$PODMAN_TMPDIR/build-test
+ mkdir -p $tmpdir
+ tmpbuilddir=$tmpdir/build
+ mkdir -p $tmpbuilddir
+ dockerfile=$tmpbuilddir/Dockerfile
+ cat >$dockerfile <<EOF
+FROM $IMAGE
+EOF
+
+ run_podman build -t build_test --format=docker --logfile=$tmpdir/logfile $tmpbuilddir
+ run cat $tmpdir/logfile
+ is "$output" ".*STEP 2: COMMIT" "COMMIT seen in log"
+
+ run_podman rmi -f build_test
+}
+
function teardown() {
# A timeout or other error in 'build' can leave behind stale images
# that podman can't even see and which will cascade into subsequent