当前位置: 首页 > 面试题库 >

错误“输入设备不是TTY”

淳于乐池
2023-03-14
问题内容

我正在从中运行以下命令Jenkinsfile。但是,出现错误 “输入设备不是TTY”

docker run -v $PWD:/foobar -it cloudfoundry/cflinuxfs2 /foobar/script.sh

有没有一种方法可以在Jenkinsfile不进行交互模式的情况下从中运行脚本?

我基本上有一个名为的文件script.sh,希望在Docker容器中运行。


问题答案:

-it从cli中删除使其不具有交互性,并删除TTY。如果不需要,例如在Jenkins或cron脚本中运行命令,则应这样做。

或者,您也可以将其更改为-i输入到不是来自TTY的docker命令中的输入。如果您在命令行中有类似xyz | docker ...或这样的内容docker ... <input,请执行此操作。

或者,您可以将其更改为-t想要TTY支持但在输入设备上不可用的情况。这样做是为了对日志中的输出进行彩色格式化,或者用于以后使用适当的终端连接到容器时使用的格式。

或者,如果您需要交互式终端并且不在Linux或MacOS的终端中运行,请使用其他命令行界面。据报道,PowerShell在Windows上包括此支持。

什么是TTY?这是一个终端接口,它支持颜色输出,转义序列,移动光标等,这是从老式笨拙的终端连接到大型机而来的。今天,它是由Linux命令终端和ssh接口提供的。有关更多详细信息,请参见Wikipedia文章。



 类似资料:
  • 我正在从我的运行以下命令。但是,我得到错误“输入设备不是TTY”。 是否有一种方法可以在不执行交互模式的情况下从运行脚本? 我基本上有一个名为我想在Docker容器中运行。

  • 我正在从我的运行以下命令。然而,我得到错误“输入设备不是一个TTY”。 有没有一种方法可以从运行脚本,而不用做交互模式? 我基本上有一个名为的文件,我希望在Docker容器中运行该文件。

  • 我已经在Ubuntu 18.04上注册了一个安装了shell执行器的GitLab运行程序,并使用下面的命令设置了一个docker容器 然后,我尝试从gitlab ci中的执行以下命令,但出现了一个错误。 除了使用docker exec之外,是否有任何关于此问题的线索?我知道,在Gitlab CI环境中工作,但它将在容器中创建一个新会话,这对我来说是不可取的。谢谢

  • 我有一个与Docker和Cypress服务器。docker使用以下命令启动Cypress: docker run-it-v$PWD:/var/www/html/test-w/var/www/html/test-cypress/included:6.5.0 很好,效果很好:) 我尝试通过gitlab ci调用此设置。在gitlab Ci中,我使用SSH连接到服务器,并启动命令:SSHroot@MY_

  • 26 输入设备 FFmpeg中的输入设备配置元素用来启用对附加到您的系统一个多媒体设备访问数据。 当编译时,默认会支持所有的输入设备。你可以通过在配置脚本执行时附加–list-indevs了解到支持的设备。 可以通过–disable-indevs在编译时禁用所有输入设备,也可以在此基础上通过–enable-indev=INDEV允许个别设备,或者在默认支持基础上通过–disable-indev=I

  • 输入设备不是TTY。如果您使用的是mintty,请尝试在命令前加'winpty' 这里该用什么?我正在用Mingw64运行Windows8。