170 похожих чатов

Всех приветствую! Стоит задача поднять в docker веб-сокет, написанный на

node js. Почитав про процесс работы с нодой под докером, выбрал для себя следующую схему: на локальной машине с федорой 35 поднимаю всю конфигурацию и подтягиваю зависимости, затем архивирую node_modules app.tar.gz, собираю проект через dockerfile:

FROM node:current-alpine3.14
WORKDIR /var/www/scripts
ADD app.tar.gz ./
ADD /scripts/package.json ./
ADD /scripts/server.js ./
EXPOSE 80
RUN npm install --production
COPY . .
CMD [ "npm", "start"]

Однако контейнер не стартует, лог контейнера выводит что не хватает зависимостей, хотя я всё вроде подтянул. В чём проблема? Логи ошибки:

node:internal/modules/cjs/loader:942
throw err;
^

Error: Cannot find module 'laravel-mix'
Require stack:
- /var/www/scripts/server.js
at Module._resolveFilename (node:internal/modules/cjs/loader:939:15)
at Module._load (node:internal/modules/cjs/loader:780:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/var/www/scripts/server.js:1:21)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Module._load (node:internal/modules/cjs/loader:827:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/var/www/scripts/server.js' ]
}

Node.js v18.2.0
node:internal/modules/cjs/loader:942
throw err;
^

Error: Cannot find module 'laravel-mix'
Require stack:
- /var/www/scripts/server.js
at Module._resolveFilename (node:internal/modules/cjs/loader:939:15)
at Module._load (node:internal/modules/cjs/loader:780:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/var/www/scripts/server.js:1:21)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Module._load (node:internal/modules/cjs/loader:827:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/var/www/scripts/server.js' ]
}

Node.js v18.2.0

5 ответов

25 просмотров

А зачем архивировать node_modules?

И зачем в конце делать COPY . . ? Ты таким образом не переписываешь всё, что ты до этого установил в node_modules?

Nick (Jleslee)-Vasiliev Автор вопроса
John Doe
А зачем архивировать node_modules?

Чтобы передать архив в контейнер и не подтягивать зависимости при каждом запуске.

Nick (Jleslee) Vasiliev
Чтобы передать архив в контейнер и не подтягивать ...

Зависимости не устанавливаются при каждом запуске, если они не изменились, оно обновляет только часть с исходниками, остальное берётся из кеша

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта