0

Ich habe erfolgreich eine Meteor App mit mupx auf einem EC2-Ubuntu Server installiert. Jetzt habe ich einen zusätzlichen Websocket-Server in der Meteor-App erstellt, der Port 8080 horcht, weil Meteor bereits eine eigene Websocket-Implementierung auf Port 80 verwendet. Ich habe es auf meinem lokalen Rechner getestet und es funktioniert.Wie wird ein zusätzlicher Port an einen Docker-Container weitergeleitet, der von mupx erstellt wurde?

Ich habe bereits die AWS Security Groups bearbeitet, um Port 8080 von allen Adressen zuzulassen.

docker ps zeigt: docker ps output

sudo iptables -L -n zeigt: iptables list output

Wie ich alles von Port 8080 in Port 8080 in meinem Meteor Anwendung innerhalb des Docker Container weiterleiten kann? Und bleiben diese Einstellungen erhalten, wenn ich mit mupx erneut bereitstellen?

Die Andockkonfiguration wird von mupx gehandhabt und Sie können das verantwortliche Skript hier finden: https://github.com/arunoda/meteor-up/blob/mupx/templates/linux/start.sh.

ich Docker nie zuvor btw verwendet

+0

Müssen Sie den Datenverkehr auf beiden Ports 80 und 8080 vom selben Andock-Container aus behandeln? Erlaubt Meteor Ihnen, mehr als einen Port mit demselben Prozess zu behandeln, oder müssen Sie mehrere Prozesse innerhalb des Andockcontainers ausführen, um beide Ports zu behandeln? –

+0

Ich muss beide Ports aus dem gleichen Docker Container behandeln. Ich habe im Grunde einen Server innerhalb von Meteor, wie in dieser Antwort erstellt: http://StackOverflow.com/A/36045419/3049705 – SebKas

+0

Ok, funktioniert der gleiche Meteor Prozess Verkehr für beide Ports? Oder benötigen Sie zwei Prozesse, einen für jeden Port? Das Beispiel, mit dem Sie verbunden sind, zeigt nur einen Port an. –

Antwort

1

Zwei eine zweite Öffnung in einem Docker Behälter aussetzen, müssen Sie gerade mit dem zweiten Anschluss der Veröffentlichungskennzeichen wieder passieren, siehe unten mit neuen den $PORT2

docker run \ 
-d \ 
--restart=always \ 
--publish=$PORT:80 \ 
--publish=$PORT2:8080 \ 
--volume=$BUNDLE_PATH:/bundle \ 
--env-file=$ENV_FILE \ 
--link=mongodb:mongodb \ 
--hostname="$HOSTNAME-$APPNAME" \ 
--env=MONGO_URL=mongodb://mongodb:27017/$APPNAME \ 
--name=$APPNAME \ 
meteorhacks/meteord:base 
+0

Ich habe die Zeile hinzugefügt und jetzt ' docker ps' zeigt, dass es von Port 32768-8080 ist Umleiten: [] (http://i.imgur.com/uaQqehR.png?1) '0.0.0.0:80->80/tcp, 0.0.0.0: 32768-> 8080/tcp' Das hat also funktioniert. Kann ich auch definieren, dass es auf Port 8080 hören soll, um so etwas zu haben: 0.0.0.0:8080->8080/tcp? – SebKas

+0

Ok, hast du die '$ PORT2' Variable gesetzt? Wenn Sie das 8080: 8080 machen, wird es 8080 auf dem Host 8080 in den Container umleiten –

+0

Ah, ich sehe. Das hat funktioniert – SebKas