У меня есть простое приложение nodejs. При попытке загрузить библиотеки я использовал npm link library1 library2
, который создал символические ссылки на /usr/local/lib/node_modules. Я пытаюсь создать образ докера, используя следующие инструкции в моем файле Docker.
FROM node:13-alpine
ENV MONGO_DB_USERNAME=admin \
MONGO_DB_PWD=password
RUN mkdir -p /home/app
COPY ./app /home/app
WORKDIR /home/app
RUN npm install
CMD ["node", "server.js"]
Теперь при построении образа он выдал RUN npm install
раздел с последующим выводом в терминал
npm ERR! syscall access
npm ERR! path /home/app/node_modules/body-parser
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, access '/home/app/node_modules/body-parser'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-12-23T21_41_24_539Z-debug.log
Мне удалось создать образ после удаления папки node_modules в моем месте кода. Также мне удалось успешно собрать образ, когда я загрузил библиотеки через npm install libary1 library2
в расположении кода.
Мои вопросы
- Почему процесс сборки образа завершается ошибкой, когда я использую глобальные библиотеки
- Где я могу найти файл журналов, указанный в терминале. На моем локальном ноутбуке нет папки /root/.
/root
внутри контейнера Docker, вам нужно получить доступ к контейнеру через оболочку или скопировать файл (используя команду Dockerexec
илиcp
. - person tentative   schedule 24.12.2020docker run -it CONTAINER bash
? Эта ошибка, по-видимому, связана с файлами пакета npm, но это может помочь получить эти журналы. - person tentative   schedule 24.12.2020