2016-01-10 2 views
5

Я в основном пытаюсь иметь Heredoc быть выполнены с помощью оболочки Фляги мигрирует с контекстомHeredoc на Docker Exec

Ниже Колба приложения является командой я пытаюсь запустить в моей Баш скрипта

$ 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, в оболочку?

ответ

4

Удалить -t вариант из docker exec команды, чтобы удалить прикрепленный pseudo-TTY ИЛИ использовать --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 
Смежные вопросы