Bash завершает работу после успешного запуска docker-compose - PullRequest
0 голосов
/ 11 декабря 2018

Я могу ssh на машину и запустить следующий скрипт

echo testing
docker-compose exec -T meteor php artisan down
echo done

, который возвращает

testing
Application is now in maintenance mode.
done

Однако, если я пытаюсь запустить эту команду через ssh, она выходит сразу после докерасоставить звонок.

ssh me@me.com << EOF
    echo testing
    docker-compose exec -T meteor php artisan down
    echo done
EOF

дает

testing
Application is now in maintenance mode.

то есть done отсутствует

Я могу продолжить, добавив && после команды docker-compose, но яУ меня длинный сценарий, и он делает уродливым и подверженным ошибкам, если мне нужно подробно изложить это.

Любая идея, почему это происходит, и что я могу изменить, чтобы исправить это.


Обновление

Я удалил -T из docker-compose и скрипт завершился, однако он выдал сообщение the input device is not a TTY.Похоже, он не может выделить интерактивную консоль.Немного погуглив, я обнаружил, что могу позвонить

export COMPOSE_INTERACTIVE_NO_CLI=1

, и тогда он будет работать до завершения без сообщений об ошибках.

Спасибо всем за помощь:)

1 Ответ

0 голосов
/ 12 декабря 2018

Проблема была вызвана флагом -T для docker-compose.

Это было добавлено, потому что печаталось сообщение об ошибке, если его там не было.the input device is not a TTY

Я обнаружил, что вы можете запретить docker-compose создавать интерактивный терминал, если вы используете

export COMPOSE_INTERACTIVE_NO_CLI=1

Тогда скрипт будет работать правильно без опции -T.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...