Webpack внутри контейнера docker «не может разрешить ‘./ src'»

#docker #webpack

#docker #webpack

Вопрос:

Я пытаюсь запустить одноразовый веб-пакет из контейнера docker для создания одного файла пакета. К сожалению, webpack не будет запускаться внутри контейнера на основе настроенного мной образа.

Dockerfile («DockerfileBuild»):

 FROM node:10-alpine

COPY package.json ./

RUN npm install

RUN ["npm", "run", "build"]
  

docker-compose.yml :

 version: "3.7"
services:
  dist:
    build:
      context: .
      dockerfile: DockerfileBuild
  

Если я запускаю docker-compose up dist , я получаю ERROR in Entry module not found: Error: Can't resolve './src' in '/' .

Я предполагаю, что я неправильно настроил свой образ, но на данный момент я не знаю, что делать.

Примечания:

  • npm install Кажется, что все работает нормально заранее.
  • Пакетирование выполняется нормально вне контейнера.

Ответ №1:

Перед запуском вам необходимо скопировать ваши фактические исходные файлы внутрь контейнера npm run . Я предполагаю, что у вас есть какая-то ссылка на ./src in package.json , которая объясняет такую ошибку.

Попробуйте скопировать все, что вам нужно, перед RUN командой (вы можете начать копировать все с COPY . . , но, возможно, захотите скопировать только ./src , это на вас).

 FROM node:10-alpine

COPY package.json ./
RUN npm install

COPY . .
RUN ["npm", "run", "build"]
  

Ответ №2:

Начиная с версии 4.0.0, webpack не нуждается в файле конфигурации, а точкой входа по умолчанию является ‘./src/index.js «. Исходя из ошибки, которую вы получаете, похоже, что вы не копируете webpack.config.js в образ docker. Он пытается найти значение по умолчанию index.js файл в папке ‘. / src’, и именно поэтому вы получаете эту ошибку. Если вы скопируете webpack.config.js тогда это должно сработать.