diff options
-rw-r--r-- | pkg/domain/infra/abi/containers_runlabel.go | 3 | ||||
-rw-r--r-- | test/e2e/runlabel_test.go | 18 |
2 files changed, 21 insertions, 0 deletions
diff --git a/pkg/domain/infra/abi/containers_runlabel.go b/pkg/domain/infra/abi/containers_runlabel.go index d448627dc..435baa8c8 100644 --- a/pkg/domain/infra/abi/containers_runlabel.go +++ b/pkg/domain/infra/abi/containers_runlabel.go @@ -133,6 +133,9 @@ func generateRunlabelCommand(runlabel string, img *libimage.Image, inputName str } splitImageName := strings.Split(normalize, "/") name = splitImageName[len(splitImageName)-1] + // make sure to remove the tag from the image name, otherwise the name cannot + // be used as container name because a colon is an illegal character + name = strings.SplitN(name, ":", 2)[0] } // Append the user-specified arguments to the runlabel (command). diff --git a/test/e2e/runlabel_test.go b/test/e2e/runlabel_test.go index e67b6cba1..656eaaceb 100644 --- a/test/e2e/runlabel_test.go +++ b/test/e2e/runlabel_test.go @@ -22,6 +22,10 @@ var GlobalDockerfile = fmt.Sprintf(` FROM %s LABEL RUN echo \$GLOBAL_OPTS`, ALPINE) +var PodmanRunlabelNameDockerfile = fmt.Sprintf(` +FROM %s +LABEL RUN podman run --name NAME IMAGE`, ALPINE) + var _ = Describe("podman container runlabel", func() { var ( tempdir string @@ -128,4 +132,18 @@ var _ = Describe("podman container runlabel", func() { result.WaitWithDefaultTimeout() Expect(result).Should(Exit(0)) }) + + It("podman container runlabel name removes tag from image", func() { + image := "podman-runlabel-name:sometag" + podmanTest.BuildImage(PodmanRunlabelNameDockerfile, image, "false") + + result := podmanTest.Podman([]string{"container", "runlabel", "--display", "RUN", image}) + result.WaitWithDefaultTimeout() + Expect(result).Should(Exit(0)) + Expect(result.OutputToString()).To(Equal("command: " + podmanTest.PodmanBinary + " run --name podman-runlabel-name localhost/" + image)) + + result = podmanTest.Podman([]string{"rmi", image}) + result.WaitWithDefaultTimeout() + Expect(result).Should(Exit(0)) + }) }) |