发出时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
scripts
with 相关的命令test
:
"scripts": {
"test": "mocha --color=true -R spec test/*.test.js && npm run lint"
}
如何grunt
使docker
TTY满意?./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脚本,它是此运行的返回值。