Docker Compose如何追加应用配置属性而非直接覆盖
在Docker Compose中追加Spring应用属性而非覆盖
要实现向已有配置追加属性值(以swagger.server.url为例),可以利用Spring Boot的环境变量属性引用特性,直接在Docker Compose的环境变量配置中拼接原有值与新值,具体操作如下:
修改后的Docker Compose配置
wishlist-service: image: tejajagadeep/movie-app-wishlist-service:latest container_name: wishlist-container environment: - eureka.client.service-url.defaultZone=http://eureka-server:8761/eureka - spring.config.import=optional:configserver:http://config-server:8888/ - management.zipkin.tracing.endpoint=http://zipkin-server:9411/api/v2/spans # 追加新的swagger server url,而非覆盖原有值 - swagger.server.url=${swagger.server.url:http://localhost:8769/,http://localhost:4200/},http://你的新地址:端口/ - spring.data.mongodb.uri=mongodb://root:root1234@mongodb:27017/wishlistdb?authSource=admin ports: - "8082:8082" networks: - my-movie-network
关键逻辑说明
${swagger.server.url:默认值}:Spring Boot会优先读取容器内已存在的swagger.server.url属性值(比如来自应用内置配置、Config Server的远程配置);如果该属性不存在,则使用冒号后的默认值作为基础。- 拼接
,http://你的新地址:端口/:将新的URL追加到原有值的末尾,最终形成包含原有地址+新地址的完整配置。
这种方式既保留了原有配置的灵活性(比如从配置中心拉取的动态值),又实现了追加新属性的需求,不会直接覆盖原有配置。
内容的提问来源于stack exchange,提问作者Kollimarla Jagadeep
相关产品推荐
相关产品推荐

