【发布时间】:2016-05-25 12:47:59
【问题描述】:
Dockerfile 对 tomcat 正常工作。 tomcat启动后,我要触发ant脚本。 catalina.sh 从一个单独的 run.sh 文件启动。所以,Dockerfile 有 CMD ["/tmp/run.sh"]
run.sh 文件有以下几行:
- catalina.sh 运行
- 反脚本
Tomcat 启动但没有调用 ant 脚本。我还尝试了其他可能性,例如:
- catalina.sh 运行 && antscripts
tomcat 启动但没有触发 antscripts
有没有办法在tomcat启动后自动调用ant脚本?之后我不想使用 docker exec 运行脚本。
【问题讨论】:
-
您的 antscript 未执行的原因是因为您的 catalina.sh 从未完成。使用 docker,tomcat 进程处于前台,不执行 antscript。
-
我能想到的实现该功能的方法之一是在 catalina.sh 之前使用 nohup 命令启动 antscripts,并在 antscript 中添加延迟(使用带有 sleep 命令的包装器 shell 脚本)。延迟可以是简单的基于时间的等待,也可以只是观察 tomcat 日志,直到服务器启动完成才能开始执行。
-
使用 nohup 命令运行包装脚本对我有用。谢谢
-
酷。那我就给它一个答案。