2017-11-07 3 views
0

Nginx läuft im Container, wie kann ich Npm http-server ausführen und es in einem Browser besuchen?Docker Container Nginx und Npm HTTP-Server

Dockerfile ist nur sehr einfach nginx, NodeJS und npm, EXPOSE 80CMD ["nginx", "-g", "daemon off;"] Stammordner ist /var/www/

Jetzt installieren ich einen Container erstellen können docker run -d -p 8080:80 --name dotker dotker

dann ich in Docker Container bekommen, docker exec -it dotker bash

Ich kann /www/helloWorld navigieren und laufen http-server -p 8081 Ist es pos Kann man /helloWorld Webseiten in einem Browser anzeigen, da der Port von nginx belegt ist?

+0

Sie müssen 'http-server -p 8081' nicht innerhalb des Containers ausführen, Sie können dies in Dockerfile angeben und 8081-Port verfügbar machen. Wahrscheinlich können Sie Ihre Dockerfile teilen, um Ihnen besser zu helfen. – Sheshnath

+0

Der bessere Weg ist, verschiedene Container für verschiedene Dienste zu haben, wie in Ihrem Fall können Sie nginx in einem Container und Ihre App in einem anderen haben, dann können Sie [Docker-Compose] (https://docs.docker.com/compose) verwenden /) zwischen den Diensten zu kommunizieren. – Sheshnath

+0

Dank Ich werde einen Blick – olo

Antwort

0

Beim Ausführen des Containers wird kein Server ausgeführt.

Ich würde vorschlagen, Einstiegspunkt Skript

zu Dockerfile hinzuzufügen:

COPY /docker-entrypoint.sh /docker-entrypoint.sh 
RUN chmod +x /docker-entrypoint.sh 
EXPOSE 8081 
ENTRYPOINT ["/usr/bin/tiny", "--","/docker-entrypoint.sh"] 

In docker-entrypoint.sh

Alle Sie Ausführen von Skripts. Etwas wie:

Verwandte Themen