天天看點

Jenkins:the input device is not a TTY

如果您在使用jenkins執行docker容器内指令時,使用的了<code>-t</code>參數

可能會有如下報錯

由于docker的<code>-t</code>參數會為輸出添加一個僞終端<code>Allocate a pseudo-TTY</code>,是以jenkins無法捕捉到輸出,您隻需要去掉<code>-t</code>參數即可

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配置看這裡