Запустите приложение create-Reaction-app в рабочем режиме в Docker - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь запустить проект create-реагировать на приложение в производственном режиме внутри контейнера докера.У меня есть следующий Dockerfile.

FROM node:10

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install
RUN npm install serve
RUN yarn global add serve

# If you are building your code for production
# RUN npm ci --only=production

# Bundle app source
COPY . .

EXPOSE 5000

CMD serve -s build

Каждый раз, когда я запускаю этот контейнер, я получаю "INFO: Accepting connections at http://localhost:5000", но ничего не отображается на порту 5000. Любые предложения будут оценены.

1 Ответ

1 голос
/ 27 сентября 2019

Вы используете веб-сервер внутри своего контейнера.Он слушает в порту.Вам нужно знать порт и затем опубликовать его.

Например, вы обнаружили, что ваш веб-сервер прослушивает порт 5000. Затем вы можете опубликовать порт, используя аргумент командной строки docker run -p 5000:5000

EXPOSE не публикует порт, он просто записывает некоторую метаинформацию внутри контейнера, и эта информация может использоваться docker run -P.Прописная буква 'P' означает: публиковать все открытые порты.Это редко делается, поэтому EXPOSE используется скорее как подсказка для пользователей вашего DOCKERFILE относительно публикации порта docker run -p XXXX:YYYY, которую вы ожидаете от них.

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