Spring Boot 服务调用另一个服务,如何使用 spring-boot-docker-compose

问题描述 投票:0回答:1

我浏览了教程 https://www.baeldung.com/docker-compose-support-spring-boothttps://www.youtube.com/watch?v=lS1GwdIfk0c 。 这些解释了如何使 Spring Boot 应用程序使用 dockerized 产品,例如一些数据库。

但是如何让 Spring Boot 服务调用另一个我的 Spring Boot 服务,spring-boot-docker-compose 可以帮忙吗?

我知道要编写 docker-compose 来使两个 Spring Boot 服务进行通信,但我不知道 spring-boot-docker-compose 如何提供帮助。

spring-boot docker-compose spring-boot-docker-plugin
1个回答
1
投票

使“另一个 Spring Boot 服务”只是另一个 docker 化的应用程序,并将其添加到您的 docker compose 中。

所以你需要:

  1. 为您的服务创建一个 Dockerfile,如下所示:
FROM bellsoft/liberica-openjdk-alpine:17
COPY target/yourapp-0.0.1-SNAPSHOT.jar /app/yourapp.jar
ENTRYPOINT ["java", "-jar", "/app/yourapp.jar"]
  1. 构建镜像并将其发布到本地 Docker 存储库。 进入Dockerfile所在目录并运行

    docker build . -t tst/yourapp:0.0.1

  2. 将其添加到主服务的 docker 组合中 - 设置

    image
    container-name
    environment
    ports
    ...不要忘记
    networks
    并让您的服务访问到的网络-被调用的服务以及
    depends_on
    在所有被调用的服务之后启动它...

如果服务在没有池/自动重连或类似机制的情况下同步通信,则必须通过

org.springframework.retry.support.RetryTemplate

添加连接重试
© www.soinside.com 2019 - 2024. All rights reserved.