Я dockerized node.js, и все работает нормально
Dockerfile:
FROM node:alpine
WORKDIR '/app'
COPY package.json .
RUN npm install
COPY . .
EXPOSE 9000
CMD ["npm", "run", "dev"]
Я пытаюсь запустить npm install
вне Dockerfile и скопировать содержимое npm install
в docker контейнер
На docker хосте, на котором я работал
npm install --prefix /opt/npm/ -g
Создана папка /opt/npm/lib/node_modules/ui
. В этой папке есть куча json файлов и папка node_modules. Dockerfile находится в этом foler. Теперь в Dockerfile я пропустил установку npm и просто скопировал содержимое / opt / npm / lib / node_modules / ui в docker контейнер .
Измененный Dockerfile
FROM node:alpine
WORKDIR '/app'
COPY . .
EXPOSE 9000
Создан образ из Dockerfile успешно, но при попытке запустить контейнер из этого образа
docker run -p 9000: 4200 pm
> ui@0.0.0 dev /app
> ng serve --host 0.0.0.0 --proxy-config src/proxy.conf.json
sh: ng: not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! ui@0.0.0 dev: `ng serve --host 0.0.0.0 --proxy-config src/proxy.conf.json`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the ui@0.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?
Можно ли запустить npm install
вне docker контейнера?