Docker在tomcat启动后执行ant脚本?
Dockerfile对于tomcat正常工作。 在tomcat启动后,我必须触发ant脚本。 catalina.sh是从一个单独的run.sh文件启动的。 所以,Dockerfile有CMD [“/tmp/run.sh”]
run.sh文件有下面几行:
- catalina.sh运行
- antscript
Tomcat启动但不调用ant脚本。 我也尝试了其他的可能性,如:
- catalina.sh run && antscripts
tomcat启动但是antscripts不被触发
有没有办法,我可以在tomcat启动后自动调用ant脚本? 我不想通过使用docker exec来运行脚本。
其中一个方法,我可以想到实现这个function
- 在catalina.sh之前用nohup命令启动antscripts,
- 并在ant脚本中添加一个延迟(使用包含睡眠命令的包装器脚本)。
延迟可以是简单的基于时间的等待,或者可以只监视tomcat日志,直到服务器启动完成以开始执行。
你可以写下你的命令:
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)
- Ubuntu docker swarm error“docker:无法连接到Docker守护进程。 docker守护程序是否在这个主机上运行?
- 如何使用tensorflow docker安装python包