ssh 启动 app, 标准输出被重定向 ssh 客户端,而不是 docker 容器的标准输出。只需要在启动时把app 标准输出重定向到 docker标准输出。
测试如下:
1.启动 docker
docker run -it -p 60022:22 --name test test:v4 bash -c "service ssh restart; while true; do sleep 100; done"
2.docker 中 /opt/start.sh 如下
#!/bin/bash
/usr/local/openjdk-8/jre/bin/java -jar /opt/coffee-web.jar >&/proc/1/fd/1 2>&1 &
3.ssh 命令
timeout 61 sshpass 123456 ssh xx@xx.xx.xx.xx -p 60022 -o StrictHostKeyChecking=no 'bash /opt/start.sh'