Dockerfile适用于tomcat。在tomcat启动后,我必须触发ant脚本。 catalina.sh是从一个单独的run.sh文件启动的。所以,Dockerfile有 CMD [“/tmp/run.sh”]
run.sh文件位于以下行:
Tomcat启动但未调用ant脚本。我还尝试了其他可能性:
tomcat启动但是没有触发antscripts
有没有办法可以在tomcat启动后自动调用ant脚本?之后我不想使用docker exec运行脚本。
答案 0 :(得分:1)
您可以通过下一种方式为您编写命令:
catalina.sh run & (sleep 20 && antscripts)
它将在catalina执行开始后的20秒内调用antscripts。您可以更改tomcat启动的估计时间的时间。
您也可以等待打开一些tcp端口:
catalina.sh run & ((while ! echo exit | nc localhost 8080; do sleep 10; done) && antscripts)
答案 1 :(得分:1)
我可以想到实现功能的方法之一是
延迟可以是基于时间的简单等待,也可以只是观察tomcat日志,直到服务器启动完成才能开始执行。