docker-compose exec python输入设备不是AWS EC2 UserData中的TTY

Abd*_*UMI 6 automation amazon-ec2 tty docker docker-compose

我正在使用EC2 UserData来引导实例.

TRacking bootstrap执行日志/var/log/cloud-init-output.log,我发现脚本停在:

+ docker-compose exec web python /var/www/flask/app/db_fixtures.py
the input device is not a TTY
Run Code Online (Sandbox Code Playgroud)

看起来这个命令它以交互模式运行,但为什么呢?以及如何为此命令强制非交互模式(docker-compose exec)?

Yua*_*kun 19

从引用docker-compose exec文档:

默认情况下,命令分配TTY,因此您可以使用诸如docker-compose exec web sh之类的命令来获取交互式提示.

要禁用此行为,您可以使用-T标志来禁用伪tty分配:

docker-compose exec -T web python /var/www/flask/app/db_fixtures.py
Run Code Online (Sandbox Code Playgroud)

或者COMPOSE_INTERACTIVE_NO_CLI在运行之前将环境变量设置为1 docker-compose exec:

export COMPOSE_INTERACTIVE_NO_CLI=1
Run Code Online (Sandbox Code Playgroud)

  • 是的。。我明白了。尽管如此,你应该得到+1。 (2认同)