diff --git a/cmd/podman/images/build.go b/cmd/podman/images/build.go index 606c18aaee..6fc73eb64e 100644 --- a/cmd/podman/images/build.go +++ b/cmd/podman/images/build.go @@ -257,6 +257,7 @@ func build(cmd *cobra.Command, args []string) error { return errors.Wrapf(err, "error determining path to file %q", containerFiles[i]) } contextDir = filepath.Dir(absFile) + containerFiles[i] = absFile break } } @@ -289,7 +290,6 @@ func build(cmd *cobra.Command, args []string) error { if err != nil { return err } - report, err := registry.ImageEngine().Build(registry.GetContext(), containerFiles, *apiBuildOpts) if err != nil { diff --git a/test/e2e/build_test.go b/test/e2e/build_test.go index d4f0a2b047..c05dc6f3f5 100644 --- a/test/e2e/build_test.go +++ b/test/e2e/build_test.go @@ -691,4 +691,19 @@ RUN ls /dev/test1`, ALPINE) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) }) + + It("podman build use absolute path even if given relative", func() { + containerFile := fmt.Sprintf(`FROM %s`, ALPINE) + err = os.Mkdir("relative", 0755) + Expect(err).To(BeNil()) + containerFilePath := filepath.Join("relative", "Containerfile") + fmt.Println(containerFilePath) + err = ioutil.WriteFile(containerFilePath, []byte(containerFile), 0755) + Expect(err).To(BeNil()) + build := podmanTest.Podman([]string{"build", "-f", "./relative/Containerfile"}) + build.WaitWithDefaultTimeout() + Expect(build).To(Exit(0)) + err = os.RemoveAll("relative") + Expect(err).To(BeNil()) + }) })