当前位置: 首页 > 知识库问答 >
问题:

kubectl exec失败,错误为“无法使用TTY-输入不是终端或正确类型的文件”

龚联
2023-03-14

我正在使用以下命令运行jenkins管道:

kubectl exec -it kafkacat-5f8fcfcc57-2txhc -- kafkacat -b cord-kafka -C -t BBSim-OLT-0-Events -o s@1585031458

在管道运行的机器终端上运行正常,但在实际管道上,我得到以下错误:“无法使用TTY-输入不是终端或正确类型的文件”

关于如何解决这个问题有什么建议吗?

共有3个答案

颛孙英勋
2023-03-14

删除-t选项。这需要一个TTY,正如你所注意到的,在Jenkins中不存在。

杨利
2023-03-14

当标志-itkubectl exec一起使用时,它启用TTY交互模式。鉴于你提到的错误,詹金斯似乎没有分配TTY。

由于您在Jenkins作业中运行该命令,因此我假设您的命令不一定是交互式的。该问题的一个可能解决方案是简单地删除-t标志,并尝试执行以下操作:

kubectl exec -i kafkacat-5f8fcfcc57-2txhc -- kafkacat -b cord-kafka -C -t BBSim-OLT-0-Events -o s@1585031458
穆俊哲
2023-03-14

对于Windows GitBash用户,请使用Powershell而不是GitBash

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

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

  • 问题内容: 我正在从中运行以下命令。但是,出现错误 “输入设备不是TTY” 。 有没有一种方法可以在不进行交互模式的情况下从中运行脚本? 我基本上有一个名为的文件,希望在Docker容器中运行。 问题答案: 从cli中删除使其不具有交互性,并删除TTY。如果不需要,例如在Jenkins或cron脚本中运行命令,则应这样做。 或者,您也可以将其更改为输入到不是来自TTY的docker命令中的输入。如

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

  • 问题内容: 我见过的大多数代码示例都试图从stdin读取而没有本地回显。为此,他们修改了“本地模式”标志以删除“回声输入字符”的设置。我想我可能只是修改“输入模式”标志,这是“插入输入队列给定的字节。” 。但是,即使我以root身份运行脚本,也没有任何效果。我写给fd的所有内容似乎都去了终端输出,而不是终端输入。基本上,我想做的就是这个确切的事情,但是在纯python中。 问题答案: 是一个ioc