2017-10-11 2 views
0

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?

Antwort