[英]How to get docker ip and port in spring boot bootstrap.yml file
[英]Set profile on bootstrap.yml in spring cloud to target different config server
我使用docker compose來運行我所有的微服務。 對於每項服務,我給它一個簡短的主機名。
version: '2'
services:
config:
image: springbox-config-server
restart: always
ports:
- "8890:8890"
discovery:
image: springbox-eureka
restart: always
ports:
- "8763:8763"
因此,在我的微服務中,我必須使用其短主機名來定位配置服務器。
spring:
application:
name: myservice
cloud:
config:
uri: http://config:8890
fail-fast: true
但是,當我在沒有docker的IDE中本地運行它們時,無法解析短主機名。
所以我正在尋找一種解決方案,根據我的環境定位不同的配置服務器。
我找到了解決方案。 基本上,我們使用spring profile來豐富bootstrap文件。 例如
spring:
application:
name: myservice
cloud:
config:
uri: http://config:8890
fail-fast: true
---
spring:
profiles: development
cloud:
config:
uri: http://localhost:8890
好消息是我們不必重寫配置文件中的所有屬性。 默認屬性是繼承的。 例如,啟用開發配置文件時,我的應用程序名稱將繼承自名為always myservice的默認應用程序名稱。
要激活配置文件,請使用以下屬性啟動該服務
-Dspring.profiles.active=development
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.