Add TERM env var to exec
When the `-t` flag is passed on exec make sure to add the TERM env var to mirror the expected configuration from run. Fixes #9299 Signed-off-by: Michael Crosby <crosbymichael@gmail.com> Upstream-commit: 4633f15f13d51530de2438c298a1084c55e4fedf Component: engine
This commit is contained in:
@ -17,7 +17,9 @@ import (
|
||||
"github.com/docker/docker/libcontainerd"
|
||||
"github.com/docker/docker/pkg/pools"
|
||||
"github.com/docker/docker/pkg/signal"
|
||||
"github.com/docker/docker/pkg/system"
|
||||
"github.com/docker/docker/pkg/term"
|
||||
"github.com/docker/docker/utils"
|
||||
)
|
||||
|
||||
// Seconds to wait after sending TERM before trying KILL
|
||||
@ -121,6 +123,13 @@ func (d *Daemon) ContainerExecCreate(name string, config *types.ExecConfig) (str
|
||||
execConfig.Tty = config.Tty
|
||||
execConfig.Privileged = config.Privileged
|
||||
execConfig.User = config.User
|
||||
execConfig.Env = []string{
|
||||
"PATH=" + system.DefaultPathEnv,
|
||||
}
|
||||
if config.Tty {
|
||||
execConfig.Env = append(execConfig.Env, "TERM=xterm")
|
||||
}
|
||||
execConfig.Env = utils.ReplaceOrAppendEnvValues(execConfig.Env, container.Config.Env)
|
||||
if len(execConfig.User) == 0 {
|
||||
execConfig.User = container.Config.User
|
||||
}
|
||||
@ -195,6 +204,7 @@ func (d *Daemon) ContainerExecStart(ctx context.Context, name string, stdin io.R
|
||||
|
||||
p := libcontainerd.Process{
|
||||
Args: append([]string{ec.Entrypoint}, ec.Args...),
|
||||
Env: ec.Env,
|
||||
Terminal: ec.Tty,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user