Ich versuche, eine Spring Boot-Anwendung, bestehend aus 2 Microservices hinter einem Traefik umgekehrt Proxy in Docker Swarm auszuführen. Wenn Sie einen Dual-Netzwerkstapel für meine Spring Boot-Webanwendung verwenden, reagiert die Anwendung nicht.Spring Boot-Komponente kann nicht über Traefik erreicht werden, mit Docker Swarm
habe ich die folgenden Netzwerke
NETWORK ID NAME DRIVER SCOPE
c23c6ac30ecd bridge bridge local
0dcb7c122e69 docker_gwbridge bridge local
1e50cdf3eee7 host host local
wbhyv0itkveu ingress overlay swarm
7sxpebq9pp7j marc_default overlay swarm
e953c2393965 none null local
t8u63pf9l3cb traefik-net overlay swarm
Und die folgende Konfiguration Traefik
docker service create \
--name traefik \
--constraint=node.role==manager \
--publish 80:80 \
--publish 8080:8080 \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--network traefik-net \
traefik \
--docker \
--docker.swarmmode \
--docker.domain=traefik \
--docker.watch \
—web
Jetzt gibt es eine Docker-compose.yml Datei
version: '3'
services:
web:
image: myapp-web
env_file:
- db-params.env
environment:
- server.port=8080
deploy:
labels:
- 'traefik.port=8080'
networks:
- web
- default
be:
image: myapp-be
env_file:
- db-params.env
networks:
- default
networks:
web:
external:
name: traefik-net
Und zu starten ein Befehl zum Starten des Verbunds:
docker stack deploy -c docker-compose.yml marc
In Traefik eine URL dort sichtbar ist: web-marc.traefik, dass in/etc definiert ist/hosts
Leider ist das nur eine Auszeit, wenn I'n „
curl http://marc-web.traefik/
fragen
Ich habe versucht, das Standardnetzwerk von der Webkomponente zu entfernen. Es könnte die Web-Komponente durch Traefik erreichen, aber (natürlich) kann es die be-Komponente nicht finden.
Warum bekomme ich keine Antwort von Spring Boot?