Сайт не может быть достигнут с помощью Docker Run - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь запустить образ Docker, который должен развернуть проект Angular 6.Dockerfile имеет следующий код:

FROM node:9.6.1
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install 
RUN npm install -g @angular/cli@1.7.3  --unsafe
ENV PATH /usr/src/app/node_modules/.bin:$PATH
COPY . /usr/src/app
EXPOSE 4200 49153
CMD ["npm" , "run" , "start"]

Я уже создал образ, используя этот Dockerfile, и, следуя документации Docker, я прочитал, что для его запуска я должен просто использовать команду sudo docker run -p 4000:80 nameOfMyImage.Поскольку Angular CLI запускает проект Angular в localhost:4200, а сам Dockerfile также выставляет этот порт, я решил запустить sudo docker run -p 4200:4200 nameOfMyImage, но, хотя в моем терминале все разворачивается успешно, каждый раз, когда я пытаюсь получить доступ к проекту Angular в своем браузереЯ получаю Этот сайт не может быть достигнут ошибка.

Другие варианты, которые я пробовал, работают sudo docker run nameOfMyImage, а также sudo docker run -p 4200:80 nameOfMyImage.URL, к которому я пытаюсь получить доступ в своем браузере: localhost:4200

1 Ответ

0 голосов
/ 21 сентября 2018

Несколько вещей ...

  1. Вы можете просто запустить запуск npm, а не запуск npm, потому что start является зарезервированным ключевым словом для сценариев npm.

  2. Вы выставляете и связываетесь с правильным портом в браузере.Но насколько вы уверены, что вы обслуживаете статический файл правильно?Я вижу, вы используете узел, вы используете экспресс?Используете ли вы express.static ()?

  3. Дважды проверьте, что экземпляр вашего узла работает на 4200, а не какой-то другой универсальный порт, например 3000 или 8080.

  4. Попробуйте запустить: докер регистрирует nameOfMyImage --follow и проверяет, выводятся ли какие-либо ошибки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...