2015-06-23 16 views
5

Buduję obraz z pliku Dockerfile, a część, w której zainstaluję zależności, jest błąd podczas budowania obrazu, ale mogę uruchamiać polecenia poza nim. Nie wiem dokładnie skąd ten błąd pochodzi.Nie mogę npm zainstalować zależności podczas budowania obrazu dokowania

Używam boot2docker na Windows i mój Dockerfile jest:

FROM ubuntu:15.04 

RUN apt-get -y update 
RUN apt-get -y install nodejs 
RUN apt-get -y install npm 

COPY /server /src 
COPY /server/package.json /tmp/package.json 

RUN cd /tmp && npm install 

(etc) 

Komunikat o błędzie jest:

sh:1 node: not found 
npm WARN: This failure might be due to the use of legacy binary "node" 
npm WARN: For further explanations, please read 
/usr/share/doc/nodejs/README.Debian 

npm ERR! [email protected] preinstall: 'node ./lib/preinstall_npmcheck.js' 
npm ERR! Exit status 127 
npm ERR! 
npm ERR! Failed at the [email protected] preinstall script. 
npm ERR! This is most likely a problem iwth the sails package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  node ./lib/preinstall_npmcheck.js 
npm ERR! You can get their info via: 
npm ERR!  npm owner ls sails 
npm ERR! There is additional logging output above. 

npm ERR! System Linux 4.0.3-boot2docker 
npm ERR! command "usr/bin/nodejs" "/usr/bin/npm" "install" 

npm ERR! node -v v0.10.25 
npm ERR! npm -v 1.4.21 
npm ERR! code ELIFECYCLE 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /tmp/npm-debug.log 
npm ERR! not ok code 0 
INFO[0633] THe command [/bin/sh -c cd /tmp && install] returned a non-zero code: 1 

Chociaż mówi, że to prawdopodobnie problem z żaglami, nie mam problemu z instalacją to na mojej maszynie. Nie mogę go zainstalować, gdy uruchomię obraz (oczywiście), a kiedy spróbuję po prostu uruchomić obraz ubuntu: 15.04 i zainstalować npm i Sails tam, to mówi mi, że npm jest command not found.

Wciąż jestem nowy w Docker (i w Windows - nie mogę nawet znaleźć npm-debug.log), więc wszelkie porady pomagają bardzo.

Dziękujemy!

Odpowiedz

6

To problem z instalacją nodejs który został pokryty tutaj: what are the differences between node.js and node?

Breifly, istnieją trzy możliwości, aby to naprawić: tworzenie podlinkowujemy siebie, używając NVM lub instalowania nodejs-legacy zamiast nodejs:

RUN apt-get -y install nodejs-legacy

+0

Awesome! Niż tak bardzo :) –

Powiązane problemy