2017-05-23 36 views
0

我有一个弹簧启动应用程序,它连接到mongo数据库并使用docker部署应用程序。我用这搬运工,compose.yml文件,它工作正常:docker-compose - 外部化spring application.properties

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 

目前,该应用程序是使用嵌入在春天应用泊坞窗图像(弹簧APP)在application.properties文件。如何使用docker-compose外部化/传入application.properties文件?

谢谢您的帮助

+1

只需在'environment'部分指定它们即可。这些优先于'application.properties'中定义的那些。 –

回答

0

你必须利用春节型材定义根据您的要求的环境变量。

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

您可以定义需要在运行时被拾起的配置文件。

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 

但是这将需要你重建泊坞窗图像,如果配置有变化,这是不理想的。 Spring Cloud Config(Vault)派上用场,可以帮助您将配置外部化。

http://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.3.0.RELEASE/

相关问题