Merge pull request #127 from Random-Liu/containerd-spec-tty

Use containerd spec generator to set tty.
This commit is contained in:
Lantao Liu 2017-08-11 14:49:17 -07:00 committed by GitHub
commit 83a20c9fd1
2 changed files with 10 additions and 2 deletions

View File

@ -202,6 +202,11 @@ func (c *criContainerdService) generateContainerSpec(id string, sandboxPid uint3
g.SetProcessCwd(imageConfig.WorkingDir) 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 // Apply envs from image config first, so that envs from container config
// can override them. // can override them.
if err := addImageEnvs(&g, imageConfig.Env); err != nil { if err := addImageEnvs(&g, imageConfig.Env); err != nil {
@ -230,8 +235,6 @@ func (c *criContainerdService) generateContainerSpec(id string, sandboxPid uint3
g.SetLinuxCgroupsPath(cgroupsPath) g.SetLinuxCgroupsPath(cgroupsPath)
} }
g.SetProcessTerminal(config.GetTty())
if err := setOCICapabilities(&g, securityContext.GetCapabilities(), securityContext.GetPrivileged()); err != nil { if err := setOCICapabilities(&g, securityContext.GetCapabilities(), securityContext.GetPrivileged()); err != nil {
return nil, fmt.Errorf("failed to set capabilities %+v: %v", return nil, fmt.Errorf("failed to set capabilities %+v: %v",
securityContext.GetCapabilities(), err) securityContext.GetCapabilities(), err)

View File

@ -191,6 +191,11 @@ func TestContainerSpecTty(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
specCheck(t, testID, testPid, spec) specCheck(t, testID, testPid, spec)
assert.Equal(t, tty, spec.Process.Terminal) 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")
}
} }
} }