diff --git a/libcontainer/nsinit/execin.go b/libcontainer/nsinit/execin.go index ac405e1..608437f 100644 --- a/libcontainer/nsinit/execin.go +++ b/libcontainer/nsinit/execin.go @@ -17,9 +17,15 @@ import ( // ExecIn uses an existing pid and joins the pid's namespaces with the new command. func ExecIn(container *libcontainer.Container, nspid int, args []string) (int, error) { + // clear the current processes env and replace it with the environment + // defined on the container + if err := LoadContainerEnvironment(container); err != nil { + return -1, err + } + for _, nsv := range container.Namespaces { // skip the PID namespace on unshare because it it not supported - if nsv.Key != "NEWPID" { + if nsv.Enabled && nsv.Key != "NEWPID" { if err := system.Unshare(nsv.Value); err != nil { return -1, err }