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

时间:2018-04-09 00:49:50

标签: docker amazon-ec2 automation docker-compose tty

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

TRacking bootstrap execution /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

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

1 个答案:

答案 0 :(得分:8)

引自the docker-compose exec docs

  

默认情况下,命令会分配一个TTY,因此您可以使用docker-compose exec web sh等命令来获取交互式提示。

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

docker-compose exec -T web python /var/www/flask/app/db_fixtures.py

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

export COMPOSE_INTERACTIVE_NO_CLI=1