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

Gitlab CI作业失败:错误输入设备不是TTY

赖绪
2023-03-14

我已经在Ubuntu 18.04上注册了一个安装了shell执行器的GitLab运行程序,并使用下面的命令设置了一个docker容器

docker run -it --gpus '"device=0"' --net=host -v /home/autotest/Desktop/ai_platform:/app --name=ai_platform_system nvcr.io/nvidia/pytorch:20.10-py3 "bash"

然后,我尝试从gitlab ci中的gitlab ci.yml执行以下命令,但出现了一个错误“输入设备不是TTY”

docker attach ai_platform_system

除了使用docker exec之外,是否有任何关于此问题的线索?我知道,docker exec在Gitlab CI环境中工作,但它将在容器中创建一个新会话,这对我来说是不可取的。谢谢

共有1个答案

司马飞鸿
2023-03-14

根据这个答案(对于Jenkins,但同样的问题),您需要删除-it标志和tty。

docker run -T --gpus '"device=0"' --net=host -v /home/autotest/Desktop/ai_platform:/app --name=ai_platform_system nvcr.io/nvidia/pytorch:20.10-py3 "bash"
 类似资料:
  • 我正在从我的运行以下命令。但是,我得到错误“输入设备不是TTY”。 是否有一种方法可以在不执行交互模式的情况下从运行脚本? 我基本上有一个名为我想在Docker容器中运行。

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

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

  • 我有两个简单的Flink流式作业,从Kafka读取,做一些转换,并将结果放入Cassandra sink。他们从不同的Kafka主题阅读,并存入不同的卡桑德拉表。 当我单独运行这两个工作中的任何一个时,一切都很好。检查点被触发并完成,数据被保存到Cassandra。 我找不到关于这个错误的很多信息,它可能是由下列任何一个引起的: Flink(V1.10.0-Scala2.12), Flink Ca

  • 我有一个与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_

  • 我是hadoop和地图还原的新手,我正在尝试编写一个地图还原器,计算单词计数txt文件的前10个计数单词。 我的 txt 文件“q2_result.txt”看起来像: 映射: 减速机: 我知道你可以在Hadoop jar命令中将一个标志传递给-D选项,这样它就会按照你想要的键进行排序(在我的情况下,计数是k2,2),这里我只是先使用一个简单的命令: 所以我认为这样简单的映射器和缩减器不应该给我错误