2017-01-14 3 views
1

ich benutze undertow für meine anwendungen mit docker.Wie führe ich die undertow java app mit docker

Ich bin in der Lage die folgende

  1. erstellen Fett jar

  2. zu tun erstellen Docker Bild von diesem

  3. Run, das Bild

  4. Eintrag auf 8080 Andockfenster und hinzugefügt EXPOSE 8080 in Docker-Datei

  5. meine url kräuseln aus in den Behälter, curl localhost: 8080/Probe

ich einige seltsame Problem konfrontiert bin,

And My compose Datei ist

version: '2' 
services: 
    login: 
    image: my-image 
    ports: 
    - "8080:8080" 

mit Port 8080 I Ich kann nicht auf die URL zugreifen.

Mein Dockerfile

FROM openjdk:8-jre 
COPY ./target/*-with-dependencies.jar /jars/service-jar.jar 
EXPOSE 8080 
CMD java -cp /jars/service-jar.jar my.Main 

Mein Undertow Zuhörer

Undertow server = Undertow.builder() 
     .addHttpListener(8080, "localhost") 
     .setHandler(path) 
     .build(); 

habe ich einige Links in Google noch nicht in der Lage, um es

http://lists.jboss.org/pipermail/undertow-dev/2014-October/000999.html

Antwort

2

das Problem behoben, indem die IP an die Docker-Container IP-Adresse zu hören.

änderte ich meine Zuhörer

Undertow server = Undertow.builder() 
     .addHttpListener(8080, InetAddress.getLocalHost().getHostAddress()) 
     .setHandler(path) 
     .build(); 

Jetzt fein daran zu arbeiten.

„Die externe IP ist etwas ganz anderes. Also zusammenfassend Sie den Host-Server für undertow als interne IP in den Iptables von Docker erstellt setzen müssen“

ich verpasst, dies zu lesen Linie in meinem Referenzlink (http://lists.jboss.org/pipermail/undertow-dev/2014-October/000999.html).

Mein Chef das herausfinden.

+0

Bedenken Sie jedoch, dass Sie Probleme auftreten, wenn Sie mehrere Docker-Netzwerke für diesen Container verwenden. In diesem Szenario sollten Sie '.addHttpListener (8080," 0.0.0.0 ")', die im Grunde sagt: "auf alle IP-Adressen hören" – ShrimpPhaser

+0

@ ShrimpPhaser, vielen Dank für den Vorschlag. Das funktioniert auch. –

0

Wie werden Sie laufen zu machen arbeiten Sie Docker Bild? Veröffentlichen Sie Port?

docker run -p 8080:8080 ... 

Related documentation

+0

Ja, ich habe das, kein Glück .... –

Verwandte Themen