ノードv6.10.3
を持つドッキングコンテナを作成する必要がありますが、最新のnpm(現在はv5.4.1
)でローカルパッケージに新しいnpm機能を使用する必要があります。NPMがドッキングコンテナでアップグレードされた後で破損する
このようなインストールは私のMacでは問題なく実行されますが、そのようなインストールでドッカーイメージを作成しようとすると、npmをアップデートした後、npmツールが壊れ、パッケージが見つからないというエラーが発生します。ここで
は、私はこの問題を再現することが可能なDockerfile、(私の本当のDockerfileはより複雑であることに注意)の例である:
FROM ubuntu:xenial
RUN apt-get update
RUN apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y nodejs
RUN npm i -g npm
RUN npm i -g lerna
それは束をスローRUN npm i -g lerna
ビルドプロセスがラインになると
Error: Cannot find module 'process-nextick-args'
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 Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_readable.js:26:23)
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)
at Function.Module._load (module.js:438:3)
他のnpmスクリプトでも同じエラーが発生します。 npmが依存するすべてのパッケージを再インストールすることは、私にとっては解決策ではありません。
私はまた、nvm
を使用してコンテナ内にノードをインストールしようとしましたが、同じエラーが発生しました。
私のドッキングウィンドウのバージョンは:
Docker version 17.06.2-ce, build cec0b72
このDockerfileの何が問題になっていて、私は何をしないのですか?
突然、まったく同じ問題が発生しています。私のDockerfileやpackage.jsonに変更を加えていませんでしたが、私はもうプロジェクトを展開できません。そして、それは5番目のレベルの依存関係(これは失敗した同じパッケージです)なので、誰がこの問題を引き起こし、修正を提供する責任があるのかを知ることができます。 –
@JorisMans、今のところ私は下記の回避策に満足しています(糸を使用してnpm設置)。たぶんあなたの環境にも役立つかもしれません。 – sorjef