2016-11-25 6 views
4

Я пытаюсь запустить приложение ng2 в докере. У меня есть файл Docker:Запуск приложения Angular2 в Docker

FROM ubuntu:latest 

RUN apt-get update 

#Install curl & git 
RUN apt-get -qq -y install curl 
RUN apt-get install -yqq git 


#Download and install nodejs-6 
RUN curl -sL https://deb.nodesource.com/setup_6.x -o nodesource_setup.sh 
RUN bash nodesource_setup.sh 
RUN apt-get install -yqq nodejs 
RUN apt-get install -yqq build-essential 
RUN npm install -g angular-cli 


#Clone the project 
RUN git clone https://github.com/moravianlibrary/RecordManager2.git 

WORKDIR /RecordManager2 

#Checkout webapp_jobs_branch 
RUN git checkout webapp_jobs_branch 


#Go to the gui directory 
WORKDIR /RecordManager2/cz.mzk.recordmanager.webapp.gui/gui 

EXPOSE 4200 

RUN npm install 

CMD ["ng", "serve"] 

здание и работает отделку без ошибок:

docker build -t rm-gui . 
docker run --name gui -dp 4200:4200 rm-gui 

После запуска приложения я могу видеть, что приложение действительно работает:

CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS     NAMES 
caa4f1f820d6  rm-gui    "ng serve"   23 minutes ago  Up 23 minutes  0.0.0.0:4200->4200/tcp gui 

, но когда я открыть страницу http://localhost:4200/ Я вижу ошибку This site can’t be reached. Что я делаю не так?

+0

вместо того, чтобы использовать 'localhost', попробуйте с IP Docker машины. https://docs.docker.com/machine/reference/ip/ –

ответ

1

в файле package.json установить следующую команду start

"scripts": { 
    "ng": "ng", 
    "start": "ng serve -H 0.0.0.0", 
    ..... 
    }, 

в вашем Dockerfile заменить последнюю строку с

CMD ["npm", "start"] 
+0

не работал, контейнер начал перезагружать себя каждые несколько секунд или около того. –

Смежные вопросы