外部 nginx->ingress->service->pod
dockerfile 启动 catalina.sh 就不会生成 catalina.out 问题
所以第一版的 dockerfile 是这样的
第一版会存在可能 tomcat 进程挂了,但是容器没有挂导致流量会正常过来,导致用户访问返回 nginx 502 错误
sh /usr/local/tomcat/bin/startup.sh
tee /opt/health.sh <<-'EOF'
while true
do
if test $( ps -aux | grep java | grep tomcat | wc -l ) -eq 0
then
ps -aux | grep catalina.out | grep -v grep | awk '{print$2}' | xargs kill -9
fi
done
EOF
sh /opt/health.sh &
tail -f /usr/local/tomcat/logs/catalina.out
第二版做了改进,增加了一个脚本去进行健康检查(如果 tomcat 进程挂了就结束 tail 进程)
sh /usr/local/tomcat/bin/startup.sh
tee /opt/health.sh <<-'EOF'
while true
do
if test $( ps -aux | grep java | grep tomcat | wc -l ) -eq 0
then
ps -aux | grep catalina.out | grep -v grep | awk '{print$2}' | xargs kill -9
fi
done
EOF
sh /opt/health.sh &
tail -f /usr/local/tomcat/logs/catalina.out
第二版暂时没发现什么问题,不晓得还有没有其他更简便的方式?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.