2017-01-05 4 views
5

Ich habe neue Angular2 App von Angle-CLI erstellt und führen Sie es in Docker. Aber ich kann es nicht von localhost verbinden.Docker Container mit Angular2 App und NodeJs reagiert nicht

Zuerst init ich App auf meinem lokalen Rechner:

ng new project && cd project && "put my Dockerfile there" && docker build -t my-ui . 

ich es durch Befehl starten:

docker run -p 4200:4200 my-ui 

Dann auf meinem localhost versuchen:

curl localhost:4200 

und erhalten

curl: (56) Recv fehlgeschlagen: Verbindung von Peer zurückgesetzt

Dann habe ich versucht, Schalter in Laufbehälter (Docker exec -ti Container-id bash) und führen Sie curl localhost: 4200 und es funktioniert.

Ich habe auch versucht mit --net = host param Container auszuführen:

docker run --net=host -p 4200:4200 my-ui 

Und es funktioniert. Was ist das Problem? Ich habe auch versucht, Container im Daemon-Modus laufen zu lassen und es hat nicht geholfen. Vielen Dank.

Mein Dockerfile

FROM node 

RUN npm install -g [email protected] && npm cache clean && rm -rf ~/.npm 

RUN mkdir -p /opt/client-ui/src 
WORKDIR /opt/client-ui 

COPY package.json /opt/client-ui/ 
COPY angular-cli.json /opt/client-ui/ 
COPY tslint.json /opt/client-ui/ 

ADD src/ /opt/client-ui/src 

RUN npm install 
RUN ng build --prod --aot 

EXPOSE 4200 

ENV PATH="$PATH:/usr/local/bin/"  
CMD ["npm", "start"] 
+0

was OS und Version von Docker zu dienen? – shusson

Antwort

6

Es scheint, dass Sie ng serve verwenden Entwicklungs-Server und es ist standardmäßig startet am Schleifen Schnittstelle (nur auf localhost) zu laufen. Sie sollten spezifische Parameter angeben:

, um es auf allen Schnittstellen auszuführen.

+0

Danke, es hat geholfen. – jiri463

3

Sie müssen angular-cli ändern, um die App extern d.h aktualisieren Sie Ihre npm Skript ng serve --host 0.0.0.0

+0

Danke, es funktioniert. – jiri463