mirror of
https://github.com/containers/podman
synced 2024-10-21 17:53:44 +00:00
container runlabel remove image tag from name
When no name is given for podman container runlabel it will default to the image base name. However this can contain a tag. Since podman does not accept container names with a colon the run command will fail if it contains something like `podman run --name NAME ...`. Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2004263 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
parent
4dd7bfdfaa
commit
0b1c45bc54
|
@ -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).
|
||||
|
|
|
@ -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))
|
||||
})
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue