Я использую изображение node:6.9
, и я пытаюсь обновить версию npm от v3 до v4.Как обновить npm внутри контейнера докера?
Мои Dockerfile выглядит следующим образом:
FROM node:6.9
MAINTAINER Philipp Kretzschmar <[email protected]>
ENV TERM xterm-color
ARG DEBIAN_FRONTEND=noninteractive
COPY docker/.docker-bashrc /root/.bashrc
RUN apt-get -qq update > /dev/null && \
apt-get upgrade -qq > /dev/null && \
apt-get install -qq rsync silversearcher-ag jq httpie vim s3cmd > /dev/null && \
apt-get autoclean -qq
RUN npm update -g # this should upgrade npm!
RUN npm install [email protected] -g --quiet > /dev/null
Тем не менее он не при запуске
npm update -g
заявив:
npm ERR! Linux 4.4.0-51-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "update" "npm" "-g"
npm ERR! node v6.9.1
npm ERR! npm v3.10.8
npm ERR! path /usr/local/lib/node_modules/npm/node_modules/asap
npm ERR! code EXDEV
npm ERR! errno -18
npm ERR! syscall rename
npm ERR! EXDEV: cross-device link not permitted, rename '/usr/local/lib/node_modules/npm/node_modules/asap' -> '/usr/local/lib/node_modules/npm/node_modules/.asap.DELETE'
Там в open github issue на НПМ уже, и обходной путь предоставляется для использования сценария install.sh
:
ADD https://www.npmjs.com/install.sh ./install.sh
RUN sh install.sh
, который, кажется, чтобы загрузить НПЙ 4.0.3 и и установить его, но теперь НПЙ не может быть запущен из внутри контейнера с указанием:
$ npm
module.js:471
throw err;
^
Error: Cannot find module 'npmlog'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:13
at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:75:3)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
Какого обходным путем, что НАЯ ошибкой и обновления и НУЮ версию более поздняя версия для изображения докеров?
Связанный: https://stackoverflow.com/questions/44269086/how-to-upgrade-npm-to-npm5- на-последних-узел-докер-изображения – k0pernikus