docker-compose – 外部化spring application.properties
我有一个弹簧启动应用程序,连接到mongo数据库,并与泊坞窗部署应用程序。 我正在使用这个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
目前,该应用程序正在使用embedded在Spring应用程序泊坞窗图像(spring-app)中的application.properties文件。 如何使用docker-compose外部化/传入application.properties文件?
感谢您的帮助
您必须根据您的要求使用Spring Profiles来定义环境variables。
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
您可以定义在运行期间需要select哪个configuration文件。
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
但是这将需要你重build泊坞窗图像,如果有一个不理想的configuration变化。 Spring Cloud Config(Vault)派上用场,帮助您将configuration外化。
http://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.3.0.RELEASE/