尽管docker的目的是在一个容器中运行单个服务,但出于某种原因,我希望在一个容器中运行两个相互通信的服务。我有两个spring引导服务:演示和Demo2
为此,我创建了一个shell脚本来运行两个应用程序的两个jars,然后将该脚本传递给Dockerfile的入口点。
shell脚本(invoke.sh)
#!/bin/bash
java -jar app.jar && java -jar app2.jarDockerfile
FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY demo/demo/target/demo-0.0.1-SNAPSHOT.jar app.jar
COPY demo2/demo2/target/demo2-0.0.1-SNAPSHOT.jar app2.jar
COPY invoke.sh invoke.sh
ENTRYPOINT ["sh","/invoke.sh"]形象创造是成功的。但是,当我运行该映像时,它只启动第一个spring引导应用程序。

为什么它不启动app2.jar?我该怎么做才能启动这两项申请?解决这一问题的任何帮助都将得到高度重视。
发布于 2020-06-21 10:55:09
第二个应用程序将在第一个应用程序以退出状态0退出后启动。
#!/bin/bash
java -jar app.jar && java -jar app2.jar这保证了jar文件的顺序执行。
发布于 2022-08-18 09:35:21
将双符号替换为单符号:
java -jar app.jar & java -jar app2.jar
它将并行运行两个应用程序。当然,在日志中会有一点混乱。
https://stackoverflow.com/questions/62493872
复制相似问题