From 2427d332f0ae0a90b13c4044c8320433a6a28aca Mon Sep 17 00:00:00 2001 From: Lantao Liu Date: Fri, 11 Aug 2017 16:53:20 +0000 Subject: [PATCH] Add TERM=xterm when tty=true. Signed-off-by: Lantao Liu --- pkg/server/container_create.go | 7 +++++-- pkg/server/container_create_test.go | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/server/container_create.go b/pkg/server/container_create.go index a77bd1ef2..51c9aa79a 100644 --- a/pkg/server/container_create.go +++ b/pkg/server/container_create.go @@ -202,6 +202,11 @@ func (c *criContainerdService) generateContainerSpec(id string, sandboxPid uint3 g.SetProcessCwd(imageConfig.WorkingDir) } + g.SetProcessTerminal(config.GetTty()) + if config.GetTty() { + g.AddProcessEnv("TERM", "xterm") + } + // Apply envs from image config first, so that envs from container config // can override them. if err := addImageEnvs(&g, imageConfig.Env); err != nil { @@ -230,8 +235,6 @@ func (c *criContainerdService) generateContainerSpec(id string, sandboxPid uint3 g.SetLinuxCgroupsPath(cgroupsPath) } - g.SetProcessTerminal(config.GetTty()) - if err := setOCICapabilities(&g, securityContext.GetCapabilities(), securityContext.GetPrivileged()); err != nil { return nil, fmt.Errorf("failed to set capabilities %+v: %v", securityContext.GetCapabilities(), err) diff --git a/pkg/server/container_create_test.go b/pkg/server/container_create_test.go index 86420db2b..56e7e6405 100644 --- a/pkg/server/container_create_test.go +++ b/pkg/server/container_create_test.go @@ -191,6 +191,11 @@ func TestContainerSpecTty(t *testing.T) { assert.NoError(t, err) specCheck(t, testID, testPid, spec) assert.Equal(t, tty, spec.Process.Terminal) + if tty { + assert.Contains(t, spec.Process.Env, "TERM=xterm") + } else { + assert.NotContains(t, spec.Process.Env, "TERM=xterm") + } } }