2016-01-10 20 views
5

Ja w zasadzie starają się mieć heredoc być wykonywane przez skorupy skrzynkowego migrować za z kolbą app kontekścieskładni heredoc na Döcker Exec

Poniżej znajduje się komenda próbuję uruchomić wewnątrz mój skrypt bash

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

Podczas próby wykonania powyższego polecenia uzyskać:

cannot enable tty mode on non tty input

to zarządzać file:

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

Moje pytanie brzmi: czy istnieje sposób przekazania zestawu poleceń, takich jak heredoc, do powłoki?

Odpowiedz

4

Usuń -t opcja z poleceniem docker exec do remove dołączony pseudo-TTY LUB użyć --tty=false:

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

Albo:

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