首页 > 解决方案 > docker tomcat启动后运行命令

问题描述

我想在运行带有 Java 应用程序(spring 或旧版应用程序)的 docker 容器时,在完成 tomcat 启动后,运行一个播放声音的脚本(这将作为通知)

问题是知道 Tomcat 启动后如何触发运行命令。

标签: javadockertomcatserverdocker-compose

解决方案


您可以有一个脚本等待 Tomcat 完全准备好

until [ 
  "$(curl -w '%{response_code}' --no-keepalive -o /dev/null --connect-timeout 1 
          -u USERNAME:PASSWORD http://localhost:8080/manager/text/list)" == "200"];

所以你的 DockerfileENTRYPOINT可能正在启动catalina.sh && yourScript

或者,就像在这里一样,在调用之前使用 nohup 命令启动您的脚本catalina.sh

这个想法仍然存在:您的脚本将循环,直到它检测到 Tomcat 已准备好。


推荐阅读