首页 > 解决方案 > 如何使用 docker-compose.yaml 同时运行两个服务?

问题描述

我有一个多模块 Maven 项目。父文件夹包含一个 pom.xml 和一个 docker-compose 文件。两个子文件夹(两个不同的服务)分别包含一个 pom.xml 和 e Dockerfile。父文件夹是calculatorws,两个子文件夹是calculatorws-rest 和calculatorws-calculator。我想用 docker-compose 同时启动这两个子服务。我的应用程序需要同时监听这两个服务才能工作,但使用我的 docker-compose 是不可能的。如何使用 docker-compose 让两个服务同时监听?

我的 docker-compose 文件是:

version: '3.9'
services:
 calculatorws-rest:
  build: ./calculatorws-rest
 calculatorws-calculator:
  build: ./calculatorws-calculator

我的calculatorws-rest Dockerfile 是:

FROM maven:3-jdk-8-alpine as builder

COPY pom.xml /calculatorws-rest/
WORKDIR /calculatorws-rest/
COPY . /calculatorws-rest/

FROM openjdk:8-jre-alpine
COPY --from=builder /calculatorws-rest/target/calculatorws-rest-0.0.1.jar /rest.jar
EXPOSE 8080
CMD ["java", "-jar", "/rest.jar"]

我的calculatorws-calculator Dockerfile 是:

FROM maven:3-jdk-8-alpine as builder

COPY pom.xml /calculatorws-calculator/
WORKDIR /calculatorws-calculator/
COPY . /calculatorws-calculator/

FROM openjdk:8-jre-alpine
COPY --from=builder /calculatorws-calculator/target/calculatorws-calculator-0.0.1.jar /calculator.jar
EXPOSE 8080
CMD ["java", "-jar", "/calculator.jar"]

如果我在普通命令行中启动这些服务,我将有两个终端,每个终端同时监听一个服务。所以,我想用 docker-compose 做同样的事情。

标签: spring-bootmavendocker-composedockerfilepom.xml

解决方案


推荐阅读