我基本上试图让Flask-migrate的shell使用Flask应用程序上下文执行heredoc
下面是我试图在我的bash脚本中运行的命令
$ docker exec -it mycontainer ./manage shell <<-EOF # shell commands to be executed EOF
当我尝试执行上述命令时,我得到:
cannot enable tty mode on non tty input
这是管理文件:
#!/usr/bin/env python from middleware import create_app, config from middleware.models import db from flask.ext.script import Manager from flask.ext.migrate import Migrate, MigrateCommand app = create_app(config) migrate = Migrate(app, db) manager = Manager(app) manager.add_command('db', MigrateCommand) if __name__ == '__main__': manager.run()
我的问题是有一种方法可以将像heredoc这样的命令传递给shell吗?
-t
从docker exec
命令中删除选项以删除附加的pseudo-TTY
OR使用--tty=false
:
docker exec -i mycontainer ./manage shell <<-EOF # shell commands to be executed EOF
要不然:
docker exec -i --tty=false mycontainer ./manage shell <<-EOF # shell commands to be executed EOF