java - docker tomcat启动后运行命令
问题描述
我想在运行带有 Java 应用程序(spring 或旧版应用程序)的 docker 容器时,在完成 tomcat 启动后,运行一个播放声音的脚本(这将作为通知)。
问题是知道 Tomcat 启动后如何触发运行命令。
解决方案
您可以有一个脚本等待 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 已准备好。
推荐阅读
- laravel - 在 Laravel 7 中存储具有不同哈希类型的密码
- java - 如何从火力基地中删除?
- javascript - Node 已经缓存了所有东西——包括路由和页面
- php - 如何删除包含 PHP、Laravel 中值空格的键?
- python - ModuleNotFoundError:没有名为“ebooklib”的模块
- java - 即使字符串受到限制,字符串索引也超出范围
- mysql - 如何在 MySQL 中一次为多个列设置多个默认约束?
- entity-framework - 在 EF(实体框架)中,在乘法应用中更改 INT 和 SMALLINT 之间的字段类型的策略是什么?
- python - python iterable是否意味着可数?
- sql - PL/SQL: ORA-00904: 无效标识符 &PL/SQL: 语句被忽略&PLS-00364: 循环索引变量使用无效