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

使用grunt-shell调用调用docker run的脚本时,如何解决“输入设备不是TTY”问题?

阎扬
2023-03-14
问题内容

发出时grunt shell:test,我收到警告“输入设备不是TTY”并且不想使用-f

$ grunt shell:test
Running "shell:test" (shell) task
the input device is not a TTY
Warning: Command failed: /bin/sh -c ./run.sh npm test
the input device is not a TTY
 Use --force to continue.

Aborted due to warnings.

这是Gruntfile.js命令:

shell: {
  test: {
    command: './run.sh npm test'
  }

这里是run.sh

#!/bin/sh
# should use the latest available image to validate, but not LATEST
if [ -f .env ]; then
  RUN_ENV_FILE='--env-file .env'
fi
docker run $RUN_ENV_FILE -it --rm --user node -v "$PWD":/app -w /app yaktor/node:0.39.0 $@

这是与package.json scriptswith 相关的命令test

"scripts": {
  "test": "mocha --color=true -R spec test/*.test.js && npm run lint"
}

如何grunt使dockerTTY满意?./run.sh npm test在咕unt声之外执行可以正常工作:

$ ./run.sh npm test

> yaktor@0.59.2-pre.0 test /app
> mocha --color=true -R spec test/*.test.js && npm run lint


[snip]

  105 passing (3s)


> yaktor@0.59.2-pre.0 lint /app
> standard --verbose

问题答案:

-t从docker run命令中删除:

docker run $RUN_ENV_FILE -i --rm --user node -v "$PWD":/app -w /app yaktor/node:0.39.0 $@

该命令-t告诉docker配置tty,如果您没有tty并尝试将其附加到容器(如果不执行,则默认为-d),该配置将无效。



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

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

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

  • 用途:使用php将命令直接输入minecraft服务器控制台 我正在尝试使用php脚本(从浏览器运行)来执行shell脚本。当我从终端运行php时,它就可以工作了!但在浏览器中,什么都不会发生。 从终端运行时,我得到一个“数组0”,但浏览器给我一个“数组1” 问题是什么?一旦我运行了shell,之后的一切不应该像在终端上一样工作吗?(shell脚本内部的内容是否重要?) shell拥有所有rx权限

  • 问题内容: 我正在使用此处提供的有用示例,使用JSch exec在远程服务器上执行Shell脚本。我可以看到脚本返回的回显,并且结尾处的退出状态为0-乍一看,一切看起来都很不错。 但是,问题在于该脚本本身会调出其他脚本,而这些脚本似乎被完全忽略,只是被跳过了。 该脚本直接调用其他脚本。即脚本的第一行是这样的: 任何人都可以建议以任何方式克服这一点吗?我确实开始研究“ shell”通道而不是“ ex

  • 问题内容: 如何从python代码调用Shell脚本? 问题答案: 该子模块将帮助你。 显而易见的例子: 其中是一个简单的shell脚本,它是此运行的返回值。