首页 > 解决方案 > 如何在spring boot(2.4.2)生成的docker镜像中覆盖application.yml中的配置?

问题描述

  1. 我用的是弹簧靴 2.4.2
  2. 使用命令mvn spring-boot:build-image -Dspring-boot.build-image.imageName=XXXXXX.azurecr.io/fake-XXXXX:0215 生成 docker 镜像
  3. 我在 application.yml 中有需要覆盖的主机名
  4. 所以我在 docker-compose 中通过了 -Dspring.data.mongodb.host=mongo_db命令:但它并没有覆盖。.. 下面的截图供参考。 在此处输入图像描述
  5. 我了解 Buildpacks 用于构建分层 jar。
  6. 如果这是我手动创建的 docker 映像,而不是 Spring Boot,那么我将在 Dockerfile 中使用 ENTRYPOINT,在 docker-compose 中使用命令:Dspring.data.mongodb.host=mongo_db -jar fake-XXXX.jar
  7. 我知道#6 有效,但想在我的新项目中使用最新最好的弹簧靴。因此,请让我知道您的想法。

标签: spring-boot

解决方案


为什么不通过 Spring Config 或 Harshi Corp Consul KV 功能尝试该方法并从那里读取您的配置。将您的配置签入到存储库并让配置框架从那里读取它并将其传递给您的应用程序?您可以在运行时更改配置(在某些情况下可能需要重新启动容器以重新加载修改后的 KV 字段)


推荐阅读