关于运维:Jenkinsthe-input-device-is-not-a-TTY

38次阅读

共计 947 个字符,预计需要花费 3 分钟才能阅读完成。

如果您在应用 jenkins 执行 docker 容器内命令时,应用的了 -t 参数

docker exec -it test_container bash build.sh

<!– more –>

可能会有如下报错

the input device is not a TTY

因为 docker 的 -t 参数会为输入增加一个伪终端 Allocate a pseudo-TTY,所以 jenkins 无奈捕捉到输入,您只须要去掉-t 参数即可

docker exec -i test_container bash build.sh

pseudo-TTY:在 Linux 中,TTY 兴许是跟终端有关系的最为凌乱的术语。TTY 是 TeleTYpe 的一个老缩写。Teletypes,或者 teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过浏览和发送信息的货色,和古老的电报机区别并不是很大。之后,当计算机只能以批处理形式运行时(过后穿孔卡片阅读器是惟一一种使程序载入运行的形式),电传打字机成为惟一可能被应用的“实时”输出 / 输出设备。最终,电传打字机被键盘和显示器终端所取代,但在终端或 TTY 接插的中央,操作系统依然须要一个程序来监督串行端口。一个 getty“Get TTY”的处理过程是:一个程序监督物理的 TTY/ 终端接口。对一个虚构网络服务器(VNC)来说,一个假装的 TTY(Pseudo-TTY,即混充的 TTY,也叫做“PTY”)是等价的终端。当你运行一个 xterm(终端仿真程序)或 GNOME 终端程序时,PTY 对虚构的用户或者如 xterm 一样的伪终端来说,就像是一个 TTY 在运行。“Pseudo”的意思是“duplicating in a fake way”(用伪造的办法复制),它相比“virtual”或“emulated”更能实在的阐明问题。而在的计算中,它却处于被放弃的阶段。

tty 也是一个 Unix 命令,用来给出以后终端设备的名称。
终端是一种字符型设施,它有多种类型,通常应用 tty 来简称各种类型的终端设备。

无关 jenkins 的自动化配置看这里
无关 jenkins 的 tty 问题看这里
无关 jenkins 的反向代理配置看这里
无关 jenkins 的 java11 问题看这里
无关 jenkins 的私钥格局谬误问题看这里
无关 jenkins 的 webhooks 配置看这里

正文完
 0