diff options
author | Charlie Doern <cdoern@redhat.com> | 2022-09-16 11:39:07 -0400 |
---|---|---|
committer | Charlie Doern <cdoern@redhat.com> | 2022-09-16 11:43:26 -0400 |
commit | 049b1088456cb34a3f3b012e3d228ca154a796c5 (patch) | |
tree | ea8b5343ad52395e6d653abd382df5640c00446e | |
parent | 8f76bc2d739657cf4394cb4d08f314011ba08dab (diff) | |
download | podman-049b1088456cb34a3f3b012e3d228ca154a796c5.tar.gz podman-049b1088456cb34a3f3b012e3d228ca154a796c5.tar.bz2 podman-049b1088456cb34a3f3b012e3d228ca154a796c5.zip |
podman container clone env patch
podman container clone was failing when env variables had multiple `=` in them.
Switch split to splitn
resolves #15836
Signed-off-by: Charlie Doern <cdoern@redhat.com>
-rw-r--r-- | pkg/specgen/generate/container.go | 2 | ||||
-rw-r--r-- | test/e2e/container_clone_test.go | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/pkg/specgen/generate/container.go b/pkg/specgen/generate/container.go index c18b5654a..736fa5ab3 100644 --- a/pkg/specgen/generate/container.go +++ b/pkg/specgen/generate/container.go @@ -352,7 +352,7 @@ func ConfigToSpec(rt *libpod.Runtime, specg *specgen.SpecGenerator, contaierID s if conf.Spec.Process != nil && conf.Spec.Process.Env != nil { env := make(map[string]string) for _, entry := range conf.Spec.Process.Env { - split := strings.Split(entry, "=") + split := strings.SplitN(entry, "=", 2) if len(split) == 2 { env[split[0]] = split[1] } diff --git a/test/e2e/container_clone_test.go b/test/e2e/container_clone_test.go index 1ba5de1a3..29ef3bc2a 100644 --- a/test/e2e/container_clone_test.go +++ b/test/e2e/container_clone_test.go @@ -308,5 +308,18 @@ var _ = Describe("Podman container clone", func() { Expect(session).Should(Exit(0)) Expect(session.OutputToString()).Should(ContainSubstring("123")) + session = podmanTest.Podman([]string{"run", "--name", "env_ctr2", "-e", "ENV_TEST=12=3", ALPINE, "printenv", "ENV_TEST"}) + session.WaitWithDefaultTimeout() + Expect(session).Should(Exit(0)) + + session = podmanTest.Podman([]string{"container", "clone", "env_ctr2"}) + session.WaitWithDefaultTimeout() + Expect(session).Should(Exit(0)) + + session = podmanTest.Podman([]string{"start", "-a", "env_ctr2-clone"}) + session.WaitWithDefaultTimeout() + Expect(session).Should(Exit(0)) + Expect(session.OutputToString()).Should(ContainSubstring("12=3")) + }) }) |