Ich versuche, meine JHipster Microservices und Registrierung in Docker-Container auf meinem OS X-Entwicklungsmaschine bereitzustellen.JHipster-Anwendung in Docker-Container kann nicht auf Host-Netzwerk zugegriffen werden, kann nicht mit anderen Containern auf Nicht-Host-Netzwerk kommunizieren
ich die Registrierung mit mehr bereitstellen oder weniger der Standard Docker-compose Konfiguration JHipster aus der Box sieht vor:
version: '2'
services:
jhipster-registry:
image: jhipster/jhipster-registry:v3.1.0
volumes:
- ./central-server-config:/central-config
# When run with the "dev" Spring profile, the JHipster Registry will
# read the config from the local filesystem (central-server-config directory)
# When run with the "prod" Spring profile, it will read the configuration from a Git repository
# See https://jhipster.github.io/microservices-architecture/#registry_app_configuration
environment:
- SPRING_PROFILES_ACTIVE=dev,native
- SECURITY_USER_PASSWORD=admin
- SPRING_CLOUD_CONFIG_SERVER_NATIVE_SEARCH_LOCATIONS=file:./central-config/localhost-config/
# - GIT_URI=https://github.com/jhipster/jhipster-registry/
# - GIT_SEARCH_PATHS=central-config
ports:
- 8761:8761
Wenn ich meine Microservices bereitstellen docker run
verwenden, geschieht jedoch eines von zwei Dingen:
Wenn ich den Port veröffentliche, möchte ich den Microservice bei der Verwendung von -p 8080:8080
verfügbar machen, damit ich über den Browser darauf zugreifen kann, kann ich es erreichen, aber der Microservice kann die Registrierung nicht finden.
Could not locate PropertySource: I/O error on GET request for "http://jhipster-registry:8761/config/clientaggregator/dev,twilio": Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused)
In der Zwischenzeit kann ich die Seiten anzeigen, die die Registrierung gut funktioniert.
Ich kann dies beheben, indem Sie "--network = host" hinzufügen, wenn Sie den Microservice starten. Wenn ich dies tue, überschreibt dies jedoch offenbar die native-zu-Host-Port-Zuordnung, und der Microservice kann vom Browser aus nicht erreicht werden.
Was noch bizarrer ist, dass vor etwa einer Woche habe ich die exakt gleiche Konfiguration verwendet, die gut funktioniert hat.
Wenn ich außerhalb eines Docker Container meine Anwendung ausführen, verbindet es mit der Registrierung in Ordnung. Wenn ich einen anderen Container anlege oder mich mit dem Microservice-Container verbinde und über curl auf die Konfigurations-URL zugreife, erhalte ich eine Antwort.
Und ich kann nicht über meinen Browser auf den Container zugreifen. – ThisIsNoZaku
@ThisIsNoZaku können Sie die Ausgabe für Docker ps bereitstellen? – yamenk
'fae11e00e397 clientaggregator"/bin/sh -c 'echo ... "vor 6 Minuten Up 6 Minuten 5701/udp, 0.0.0.0:32769->8081/tcp wizard_pasteur1' – ThisIsNoZaku