Не удается найти ошибку модуля при сборке Docker для приложения NodeJS - PullRequest
0 голосов
/ 30 января 2019

Я написал DockerFile для приложения узла.Это файл Docker:

FROM node:10.15.0

COPY frontend/  frontend/
WORKDIR frontend/ 
RUN npm install
RUN npm start

Когда я пытаюсь создать этот Dockerfile, я получаю эту ошибку: ERROR in ./app/main.js Module not found: Error: Can't resolve './ResetPwd' in '/frontend/app'

Поэтому я добавил RUN ls & RUN ls /app в Dockerfile.Оба файла есть!Я не знаком с NodeJS, и это процесс сборки вообще.Кто-нибудь может мне помочь с этим?

Точка: я не уверен, помогает ли это или нет, но я тоже использую Webpack.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Проблема заключалась в том, что наш разработчик внешнего интерфейса считал, что при импорте узлов регистр не учитывается, и он использовал окна.Я попытался запустить Dockerfile на Mac, и поэтому он не смог найти модули.Имя модуля было сброшеноPass!

0 голосов
/ 30 января 2019

Я не могу сказать, сработает ли это наверняка, поскольку я не знаю, действительно ли npm start запускает веб-пакет, но если этого не произойдет, вам придется добавить дополнительную строку RUN после строки COPY frontend /

Здесь есть несколько проблем, попробуйте вместо этого использовать этот файл Docker

FROM node:10.15.0

# Copy dependency files and install packages
WORKDIR frontend
COPY frontend/package.* .
RUN npm install

# Copy src down and other stuff
COPY frontend /

# cd to the file with the package.json
WORKDIR /appDir/frontend

# Command that executes when container starts up
CMD ["npm", "start"]

Убедитесь, что вы также обновили свой .dockerignore, добавив в него node_modules.Вам нужно будет собрать и запустить контейнер с помощью следующих команд:

docker build -t frontendApp .
docker run -p 8080:8080 frontendApp

-p и 8080: 8080 связаны с выставлением внутренних портов внешнему миру, чтобы вы могли просматривать его в браузерепросто измените его на любой порт, который веб-пакет использует для отображения ваших материалов.

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