как мне составить экспресс-приложение и запустить приложение вместе, а затем запустить его в докере - PullRequest
0 голосов
/ 06 ноября 2018

Я искал вокруг без особой удачи, или, может быть, потому что я слишком нуб, но я этот проект онлайн на github, https://github.com/bradtraversy/react_express_starter,, и я попытался сделать так, чтобы он мог работать с докером, но это не похоже, что он не хочет работать, в док-терминале он говорит, что сервер запущен и приложение реагирует на localhost: 3000, но ничего не появляется, когда я вставляю его в браузер, даже сервер и API доступен, так что я решил, что это должно быть что-то с файлом докера. Я помещаю файл докера в папку проекта.

Мой докерфайл говорит

FROM node:latest
WORKDIR /app
COPY package.json ./
RUN npm install
CMD npm run client-install
COPY . .
EXPOSE 3000
CMD npm run dev

и я собираю его с помощью "docker build -t project". и затем запустите его с помощью «Docker run -p 5000: 5000 project»

Заранее спасибо

скриншот происходящего

РЕДАКТИРОВАТЬ: ОК, я заставил сервер работать, оказалось, что у докера есть другой ip, чем localhost, поэтому порт 5000 работает так же, как и вызов API, но часть реакции не отображается на порту 3000?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Внутренний порт 3000 - вам нужно сделать его доступным извне (на хост-машине). Переместите EXPOSE 3000 перед CMD, затем docker run -p 5000:3000 project должен сделать ваш док-контейнер доступным как localhost:5000/.

0 голосов
/ 06 ноября 2018

Похоже, что вы не используете EXPOSE как отдельный файл Docker. Это можно сделать прямо перед

CMD npm run dev

вроде так

EXPOSE 3000

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