2017-09-08 13 views
2

ノード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の何が問題になっていて、私は何をしないのですか?

+1

突然、まったく同じ問題が発生しています。私のDockerfileやpackage.jsonに変更を加えていませんでしたが、私はもうプロジェクトを展開できません。そして、それは5番目のレベルの依存関係(これは失敗した同じパッケージです)なので、誰がこの問題を引き起こし、修正を提供する責任があるのか​​を知ることができます。 –

+0

@JorisMans、今のところ私は下記の回避策に満足しています(糸を使用してnpm設置)。たぶんあなたの環境にも役立つかもしれません。 – sorjef

答えて

2

yarnを使用してこの問題を回避する方法を見つけました。

それは奇妙に見えますが、それは動作します:

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 yarn 
RUN npm uninstall npm -g 
RUN yarn global add npm 
RUN npm i -g lerna 

をそれでも、誰かがオリジナルのソリューションが動作しませんでした理由を説明、および/またはそれを修正するためのより良い方法を見つけるのを助けることができるならば、それは素晴らしいことです。

+0

どうやってこれを思いついたのか分かりませんが、私の側の問題も解決しています。参考:私はFROMノードでインストールしています:7ドッカーイメージ。 –

+0

'yarn'が既にインストールされている公式の[node images](https://hub.docker.com/_/node/)を使うことができます。 –

関連する問題