2016-04-29 7 views
6
setzen

Ich benutze Docker komponieren, um alle meine Micro-Dienste zu laufen. Für jeden Dienst gebe ich einen kurzen Hostnamen.Profil auf bootstrap.yml im Frühjahr Wolke auf verschiedene Konfigurationsserver

version: '2' 

services: 
    config: 
    image: springbox-config-server 
    restart: always 
    ports: 
    - "8890:8890" 

    discovery: 
    image: springbox-eureka 
    restart: always 
    ports: 
    - "8763:8763" 

Daher muss ich in meinem Micro-Service den configserver mit seinem kurzen Hostnamen anvisieren.

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

Wenn ich sie jedoch lokal in meiner IDE ohne Andockfenster ausführe, kann der kurze Hostname nicht aufgelöst werden.

So suche ich nach einer Lösung, um verschiedene Config-Server entsprechend meiner Umgebung zu zielen.

Antwort

12

Ich finde die Lösung. Im Grunde verwenden wir das Spring-Profil, um die Bootstrap-Datei anzureichern. Zum Beispiel

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

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

Die gute Nachricht ist, dass wir nicht alle Eigenschaften in einem Profil neu schreiben müssen. Die Standardeigenschaften sind geerbt. Wenn beispielsweise das Entwicklungsprofil aktiviert ist, wird mein Anwendungsname von dem Standardnamen übernommen, der immer myservice heißt.

Um das Profil, starten Sie den Dienst mit dem folgenden Gut

-Dspring.profiles.active=development 
zu aktivieren
Verwandte Themen