Web Services 在单个Docker容器中运行两个服务

eivnm1vs  于 2022-11-15  发布在  Docker
关注(0)|答案(2)|浏览(136)

尽管Docker应该在一个容器中运行一个服务,但出于某种原因,我希望在一个容器中运行两个相互通信的服务。演示和演示2
为此,我创建了一个shell脚本来运行两个应用程序的两个jar,然后将该脚本传递给Dockerfile的入口点。
shell程序档(invoke.sh)

#!/bin/bash
java -jar app.jar && java -jar app2.jar

停靠文件

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 Boot 应用程序。

为什么它不能启动app2.jar?我该怎么做才能启动这两个应用程序?任何帮助解决这个问题的人都将非常感激。

m3eecexj

m3eecexj1#

一旦第一个应用程序以退出状态0退出,第二个应用程序将启动。

#!/bin/bash
java -jar app.jar && java -jar app2.jar

这保证了jar文件的顺序执行。

yzckvree

yzckvree2#

将双&号替换为单&号:
java -jar app.jar & java -jar app2.jar
它将并行运行两个应用程序。当然,日志中会有一点混乱。

相关问题