【问题标题】:Run commands after docker tomcat startupdocker tomcat启动后运行命令
【发布时间】:2021-01-13 07:54:59
【问题描述】:

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

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

【问题讨论】:

  • 一般来说,“播放声音”或以其他方式与主机的硬件设备交互不是您可以从容器中完成的事情。您可以尝试Docker Compose wait for container X before starting Y 中的一种技术(使用ncwait-for-it 的方法不是Docker 特定的)从主机运行它。

标签: java docker tomcat server docker-compose


【解决方案1】:

你可以有一个script waiting for Tomcat to be fully ready

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

因此您的 Dockerfile ENTRYPOINT 可能正在启动 catalina.sh && yourScript

或者,作为in here,在调用catalina.sh之前使用nohup 命令启动您的脚本。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多