mirror of
https://github.com/containers/podman.git
synced 2025-06-06 15:00:40 +08:00
Only allocate tty when -t
In our ezrly development, we always allocated a tty when not -d. Now we should only allocated when the user asks for it. Resolves: #573 Signed-off-by: baude <bbaude@redhat.com> Closes: #574 Approved by: rhatdan
This commit is contained in:
@ -447,13 +447,7 @@ func parseCreateOpts(c *cli.Context, runtime *libpod.Runtime, imageName string,
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Because we cannot do a non-terminal attach, we need to set tty to true
|
|
||||||
// if detach is not false
|
|
||||||
// TODO Allow non-terminal attach
|
|
||||||
tty := c.Bool("tty")
|
tty := c.Bool("tty")
|
||||||
if !c.Bool("detach") && !tty {
|
|
||||||
tty = true
|
|
||||||
}
|
|
||||||
|
|
||||||
pidMode := container.PidMode(c.String("pid"))
|
pidMode := container.PidMode(c.String("pid"))
|
||||||
if !pidMode.Valid() {
|
if !pidMode.Valid() {
|
||||||
|
@ -83,18 +83,6 @@ func (c *Container) attachContainerSocket(resize <-chan remotecommand.TerminalSi
|
|||||||
outputStream := os.Stdout
|
outputStream := os.Stdout
|
||||||
errorStream := os.Stderr
|
errorStream := os.Stderr
|
||||||
defer inputStream.Close()
|
defer inputStream.Close()
|
||||||
|
|
||||||
// TODO Renable this when tty/terminal discussion is had.
|
|
||||||
/*
|
|
||||||
tty, err := strconv.ParseBool(c.runningSpec.Annotations["io.kubernetes.cri-o.TTY"])
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrapf(err, "unable to parse annotations in %s", c.ID)
|
|
||||||
}
|
|
||||||
if !tty {
|
|
||||||
return errors.Errorf("no tty available for %s", c.ID())
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
if terminal.IsTerminal(int(inputStream.Fd())) {
|
if terminal.IsTerminal(int(inputStream.Fd())) {
|
||||||
oldTermState, err := term.SaveState(inputStream.Fd())
|
oldTermState, err := term.SaveState(inputStream.Fd())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -104,8 +92,8 @@ func (c *Container) attachContainerSocket(resize <-chan remotecommand.TerminalSi
|
|||||||
defer term.RestoreTerminal(inputStream.Fd(), oldTermState)
|
defer term.RestoreTerminal(inputStream.Fd(), oldTermState)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Put both input and output into raw
|
// Put both input and output into raw when we have a terminal
|
||||||
if !noStdIn {
|
if !noStdIn && c.config.Spec.Process.Terminal {
|
||||||
term.SetRawTerminal(inputStream.Fd())
|
term.SetRawTerminal(inputStream.Fd())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ var _ = Describe("Podman privileged container tests", func() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
It("podman non-privileged should have very few devices", func() {
|
It("podman non-privileged should have very few devices", func() {
|
||||||
session := podmanTest.Podman([]string{"run", "busybox", "ls", "-l", "/dev"})
|
session := podmanTest.Podman([]string{"run", "-t", "busybox", "ls", "-l", "/dev"})
|
||||||
session.WaitWithDefaultTimeout()
|
session.WaitWithDefaultTimeout()
|
||||||
Expect(session.ExitCode()).To(Equal(0))
|
Expect(session.ExitCode()).To(Equal(0))
|
||||||
Expect(len(session.OutputToStringArray())).To(Equal(18))
|
Expect(len(session.OutputToStringArray())).To(Equal(18))
|
||||||
|
Reference in New Issue
Block a user