2016-04-29 3 views
6

Я использую docker compose для запуска всех моих микросервисов. Для каждой службы я даю ей короткое имя хоста.Установить профиль на bootstrap.yml в весеннем облаке, чтобы настроить другой сервер конфигурации

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 

Однако, когда я запускаю их локально в своей среде IDE без докеров, короткое имя хоста не может быть разрешено.

Так что я ищу решение для настройки другого сервера конфигурации в соответствии с моей средой.

ответ

12

Я нахожу решение. В принципе, мы используем весенний профиль, чтобы обогатить файл начальной загрузки. Например,

spring: 
    application: 
    name: myservice 
    cloud: 
    config: 
     uri: http://config:8890 
     fail-fast: true 

--- 
spring: 
    profiles: development 
    cloud: 
    config: 
     uri: http://localhost:8890 

Хорошей новостью является то, что нам не нужно переписывать все свойства в профиле. Свойства по умолчанию наследуются. Например, когда профиль разработки включен, мое имя приложения наследуется от значения по умолчанию, которое всегда называется myservice.

Для активации профиля, запустите службу со следующим свойством

-Dspring.profiles.active=development 
Смежные вопросы