我有一个 Spring Boot 应用程序,它连接到 mongo 数据库并使用 docker 部署该应用程序。我正在使用这个 docker-compose.yml 文件,它工作正常:
version: '2'
services:
db:
container_name: app-db
image: mongo
volumes:
- /data/db:/data/db
ports:
- 27017:27017
web:
container_name: spring-app
image: spring-app
depends_on:
- db
environment:
SPRING_DATA_MONGODB_URI: mongodb://db:27017/appDB
SPRING_DATA_MONGODB_HOST: db
ports:
- 8080:8080
目前,该应用程序正在使用嵌入在 spring 应用程序 docker 映像 (spring-app) 中的 application.properties 文件。如何使用 docker-compose 外部化/传入 application.properties 文件?
感谢您的帮助
您必须根据您的要求使用 Spring 配置文件来定义环境变量。
server:
port: 9000
---
spring:
profiles: development
server:
port: 9001
---
spring:
profiles: production
server:
port: 0
参考:https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html#howto-change-configuration-depending-on-the-environment https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html#howto-change-configuration-depending-on-the-environment
您可以定义在运行时需要选取哪个配置文件。
version: '2'
services:
db:
container_name: app-db
image: mongo
volumes:
- /data/db:/data/db
ports:
- 27017:27017
web:
container_name: spring-app
image: spring-app
depends_on:
- db
environment:
SPRING_DATA_MONGODB_URI: mongodb://db:27017/appDB
SPRING_DATA_MONGODB_HOST: db
SPRING_PROFILES_ACTIVE=development
ports:
- 8080:8080
但是,如果配置发生不理想的更改,这将要求您重建 docker 映像。 Spring Cloud Config (Vault) 就派上用场了,它可以帮助您外部化您的配置。
http://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.3.0.RELEASE/ http://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.3.0.RELEASE/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)