3
我使用的圖像node:6.9
,我嘗試更新爲從v3到v4的npm版本。如何升級碼頭集裝箱內的npm?
我Dockerfile樣子:
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已經提供瞭解決方法,並且:運行
npm update -g
時指出
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
然而,它失敗使用install.sh
腳本:
ADD https://www.npmjs.com/install.sh ./install.sh
RUN sh install.sh
這似乎下載NPM 4.0.3並安裝它,但現在NPM不能從容器內聲明開始:
$ 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)
是NPM錯誤,並更新NPM版本有什麼解決辦法碼頭圖像的更高版本?
相關:https://stackoverflow.com/questions/44269086/how-to-upgrade-npm-to-npm5-在最最新的節點 - 泊塢窗圖像 – k0pernikus