java - 将多个微服务相互依赖地部署到docker容器中

标签 java docker docker-compose microservices

我必须将 java 中的微服务部署到 docker 容器,并且这些微服务相互依赖来构建包。就像应用程序 a 具有其他应用程序 b、c 和 d 所需的基础包一样,所以我无法执行 mvn clean install docker:build 来构建没有 a 的 b、c 和 d。我是 Docker 新手,有人可以建议我如何解决这个问题。

我在 pom 文件中使用 docker 插件,然后使用 mvn clean install -d docker:build 来制作 docker 镜像。

最佳答案

这个问题有不同的解决方案:

  • 使用maven(或gradle),您可以为公共(public)类创建maven项目并将其作为依赖项导入到其他项目中
  • 不同项目中存在重复代码。虽然这似乎不是一个好的解决方案,但它完全分离了项目之间的依赖关系。每个项目在其他项目中都必须被视为黑匣子,因此您不应该了解其内部代码。例如,您应该能够更改单个 docker 的编程语言,而不影响整个环境的行为。
<小时/>

更新的答案:要使用 Maven 依赖项,步骤如下:

  • 在项目 A 中查找项目 B 使用的类
  • 从项目 A 中删除此类
  • 创建一个新项目C
  • 将项目A中删除的类添加到项目C中
  • 构建并安装项目 C (mvn -install)
  • 更改项目A的pom以使用项目C的依赖
  • 构建项目 A
  • 更改项目B的pom以使用项目C的依赖
  • 构建项目 B
  • 使用唯一的jar A.jar为A创建docker镜像
  • 使用唯一的jar B.jar为B创建docker镜像

关于java - 将多个微服务相互依赖地部署到docker容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54304078/

相关文章:

java - 同步与 Collection.synchronizedList 与 CopyOnWriteArrayList

java - spring3 - 应用程序上下文 - bean属性名称和引用 - 空指针异常

node.js - 维护 yarn.lock 跨平台?

docker - 无法在RHEL 7服务器中使用docker-compose拉出elasticsearch和kibana

java - 如何通过 OrientDB java api 使用标签/类获取边缘

java - java中的音效

docker - docker compose 的问题

docker - 在安装全局模块后在 Docker 中找不到模块

docker - Gradle 中的 Kafka 集成测试运行到 GitHub Actions

python - 跨不同容器接收 Django 信号