получить результат выполнения команды из контейнера Docker - PullRequest
0 голосов
/ 15 апреля 2019

В любом случае, мне нужно знать, когда команда завершена внутри контейнера Docker? Я создал Docker-контейнер и могу отправить команду из моего локального в Docker-контейнер с помощью Docker Exec. до сих пор в моем скрипте bash я использовал sleep, чтобы дождаться завершения команды «cd root: npm install» внутри контейнера Docker. Если я не сплю, готово распечатывается сразу после отправки npm install в контейнер докера. Как я могу удалить сон, так что готовый распечатан только после того, как npm install закончен в контейнере докера?

docker exec -d <docker container name> bash -c "cd root;npm install" sleep 100 echo "done"

Ответы [ 3 ]

1 голос
/ 15 апреля 2019

Не используйте команду в фоновом режиме, если вы хотите, чтобы она работала на переднем плане (флаг -d):

docker exec <docker container name> bash -c "cd root;npm install"
echo "done"
0 голосов
/ 15 апреля 2019

Если вы опустите -d (отсоединение), docker exec вернется только после завершения (и не сразу), поэтому wait не потребуется.

0 голосов
/ 15 апреля 2019

Запустите его как фоновый процесс &, а затем wait для него:

docker exec -d <docker container name> bash -c "cd root;npm install" &
wait
echo "done"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...