我有一个 shell 脚本来部署 docker 应用程序,当我运行它时,ssh 连接没有终止,所以我需要强制退出终端。之后,该应用程序将继续运行。
我尝试过nohup,screen和&&没有成功。有没有办法优雅地释放连接?
ssh -tt $host "cd $appname && docker run -p 13370:13370 -ti $appname"
"docker run"的"-i"选项使STDIN保持打开状态。 "-t"选项分配一个伪 tty。
-i, --interactive=false Keep STDIN open even if not attached
-t, --tty=false Allocate a pseudo-TTY
您需要告诉 docker 使用"-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