2016-01-10 24 views
5

Ich bin im Grunde ein heredoc haben versucht, durch Flask Migrations ShellHeredoc auf Docker exec

mit Flask App Kontext Im Folgenden ausgeführt ist der Befehl ich versuche, in meinem Bash-Skript zu laufen

$ docker exec -it mycontainer ./manage shell <<-EOF 
    # shell commands to be executed 
EOF 

Beim Versuch, den obigen Befehl ich auszuführen:

cannot enable tty mode on non tty input

Dies ist die verwalten Datei:

#!/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() 

Meine Frage gibt es eine Möglichkeit, Befehle wie in heredoc an die Shell übergeben?

Antwort

4

Remove -t Option docker exec Befehl pseudo-TTY angebracht entfernen oder verwenden --tty=false:

docker exec -i mycontainer ./manage shell <<-EOF 
    # shell commands to be executed 
EOF 

Oder:

docker exec -i --tty=false mycontainer ./manage shell <<-EOF 
    # shell commands to be executed 
EOF