【发布时间】:2020-09-25 22:05:57
【问题描述】:
场景:我已经构建了一个微服务来解决 Pentaho 中的业务需求,这是一个在 tomcat 之上的应用程序,在不同的端口上运行,当然,因为我的独立应用程序会发生冲突在 docker 容器中运行时使用 Pentaho 库。我想在一个 docker 镜像中运行这两个应用程序,因为这个应用程序是 Pentaho 特有的,并且将安装在用户机器上,因此更容易维护。我把微服务的罐子放在 Pentaho 里面,但是当 docker compose 尝试运行这个图像时,只启动微服务。
运行.sh:
if [ -z "$DEBUG" ]; then
echo Starting Sheet Formatting service and Pentaho in DEBUG mode
cd /pentaho/
java -jar sheet-service.jar &&
cd *server*
./start-pentaho.sh;
else
echo Starting Sheet Formatting service and Pentaho in normal mode
cd /pentaho/
java -jar sheet-service.jar &&
cd *server*
./start-pentaho-debug.sh;
fi
Dockerfile:
....
EXPOSE 8080 8889
# 1. Run
ENTRYPOINT ["bash", "/pentaho/run.sh"]
微服务目录: /pentaho/sheet-service.jar
启动 Pentaho 目录: /pentaho/pentaho-server/start-pentaho.sh /pentaho/pentaho-server/start-pentaho-debug.sh
我做错了吗?是否可以在同一个容器中运行 Spring Boot 应用程序和 Tomcat?
【问题讨论】:
-
可能你的意思是 &,而不是 && (run.sh)。见stackoverflow.com/questions/26770568/…
-
@Mayfor 第一个脚本需要在后台运行才能运行第二个脚本?
标签: spring-boot shell docker-compose dockerfile