Docker не будет выставлять мой порт webpack на мою локальную машину - PullRequest
1 голос
/ 26 апреля 2019

Я пытаюсь создать приложение activjs с докером, поэтому мне нужно предоставить свой порт 3000, который является одним из моего сервера webpack.

Вот мой Dockerfile:

FROM node:11-alpine

RUN mkdir /app
WORKDIR /app

COPY package.json .
RUN npm i

COPY . .

CMD ["npm", "start"]

npm start это просто webpack-dev-server

И мой docker-compose.yml:

version: '3'

services:
  sample-app:
    container_name: sample-app
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - '.:/app'
      - '/app/node_modules'
    ports:
      - '3000:3000'

И когда я иду на http://localhost:3000/, это не работает.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Я исправил это следующим образом: https://github.com/webpack/webpack-dev-server/issues/547#issuecomment-284737321

Хостом конфигурации веб-пакета должно быть «0.0.0.0», а не «localhost» (как это было в моем случае)

0 голосов
/ 26 апреля 2019

В вашем файле Docker вам нужно открыть порт 3000. Добавьте это в ваш Dockerfile прямо над строкой CMD

EXPOSE 3000

Строка в вашем файле Docker-compose отображает порт3000 от вашего хоста до порта 3000 в вашем контейнере, но без строки выше, порт 3000 не «открыт» для хоста.

Эти статьи предоставляют дополнительную информацию: https://medium.freecodecamp.org/expose-vs-publish-docker-port-commands-explained-simply-434593dbc9a3

https://medium.com/@andyccs/webpack-and-docker-for-development-and-deployment-ae0e73243db4 (немного устаревший, но немного полезной информации)

...