2017-05-23 75 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/

相關問題