2016-01-28 2 views
0

У меня есть сценарий оболочки для развертывания приложения docker, и когда я его запускаю, ssh-соединение не завершается, поэтому мне нужно принудительно выйти из терминала. После этого приложение остается включенным.Docker node.js Ctrl + C в Node.Js ssh deploy

Я пробовал nohup, экран и & без успеха. Есть ли способ освободить соединение изящно?

ssh -tt $host "cd $appname && docker run -p 13370:13370 -ti $appname" 
+0

* Я пробовал nohup, экран * ... как вы пробовали? Я вижу только команду без них. – Jakuje

ответ

2

Опция '-i' для «запуска докеров» сохраняет STDIN открытым. Опция '-t' выделяет псевдо-tty.

-i, --interactive=false   Keep STDIN open even if not attached 
-t, --tty=false     Allocate a pseudo-TTY 

Вам нужно будет сказать докер, чтобы запустить команду в фоновом режиме, используя «-d» и опустить «-it».

-d, --detach=false    Run container in background and print container ID 

Вам не нужен «-tt» для ssh. Попробуйте следующее:

ssh $host "cd $appname && docker run -p 13370:13370 -d $appname" 

Возможно, вы также захотите указать политику перезапуска с использованием --restart = always.

--restart=no     Restart policy to apply when a container exits 
Смежные вопросы