2017-08-09 1 views
1

Je dockerize mon application Spring Boot et je la déploie sur Docker Swarm.L'application enregistre dans Eureka en utilisant IP à la place du nom d'hôte lorsque son conteneur Docker publie le port

Si je ne publierai pas le port mon application expose, puis le client Eureka envoie le nom d'hôte comme adresse de l'instance, comme http://ecf28bdd26c5:8080 - bonne

Si je publierai le port (en utilisant le paramètre --publish Docker), il enregistre avec IP, comme http://10.255.0.25:8080 - mauvais

il le fait même si je défini explicitement eureka.instance.prefer-ip-address=false. Comment puis-je forcer le client Eureka à utiliser vraiment le nom d'hôte?

Répondre

2

en définissant explicitement le nom d'hôte eureka.instance.hostname=${SOME_VAR} ou en ignorant certaines interfaces:

De l'documentation: La configuration suivante va ignorer l'interface « docker0 » et toutes les interfaces qui commencent par « veth ».

application.yml 
spring: 
    cloud: 
    inetutils: 
     ignoredInterfaces: 
     - docker0 
     - veth.* 

Vous pouvez également forcer à utiliser des adresses réseau uniquement spécifiées en utilisant la liste des expressions régulières:

application.yml 
spring: 
    cloud: 
    inetutils: 
     preferredNetworks: 
     - 192.168 
     - 10.0 
+0

Spencer à la rescousse, comme toujours :) Merci – Tomasz