From 3f5da4d0dd04f755f9a46f93d59f2db58285436b Mon Sep 17 00:00:00 2001 From: Matthew Heon Date: Fri, 23 Mar 2018 11:22:48 -0400 Subject: Make container env variable conditional Add only when it's not already present. Add a more specific version in podman spec generation so we get 'container=podman' not 'container=libpod' Signed-off-by: Matthew Heon Closes: #540 Approved by: baude --- cmd/podman/spec.go | 1 + libpod/container_internal.go | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/cmd/podman/spec.go b/cmd/podman/spec.go index c4202fcef..014919e17 100644 --- a/cmd/podman/spec.go +++ b/cmd/podman/spec.go @@ -195,6 +195,7 @@ func createConfigToOCISpec(config *createConfig) (*spec.Spec, error) { for sysctlKey, sysctlVal := range config.Sysctl { g.AddLinuxSysctl(sysctlKey, sysctlVal) } + g.AddProcessEnv("container", "podman") // RESOURCES - MEMORY if config.Resources.Memory != 0 { diff --git a/libpod/container_internal.go b/libpod/container_internal.go index d8002b000..28f7dfe45 100644 --- a/libpod/container_internal.go +++ b/libpod/container_internal.go @@ -909,7 +909,18 @@ func (c *Container) generateSpec() (*spec.Spec, error) { g.SetHostname(c.Hostname()) g.AddProcessEnv("HOSTNAME", g.Spec().Hostname) - g.AddProcessEnv("container", "libpod") + + // Only add container environment variable if not already present + foundContainerEnv := false + for _, env := range g.Spec().Process.Env { + if strings.HasPrefix(env, "container=") { + foundContainerEnv = true + break + } + } + if !foundContainerEnv { + g.AddProcessEnv("container", "libpod") + } return g.Spec(), nil } -- cgit v1.2.3-54-g00ecf