在构builddocker映像时不能npm安装依赖关系

我从Dockerfile构build一个图像,当我构build图像时,npm安装依赖关系的部分出错,但是我可以在其外部运行命令。 我不知道这个错误是从哪里来的。

我在Windows上使用boot2docker,我的Dockerfile是:

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) 

错误消息是:

 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! sails@0.11.0 preinstall: 'node ./lib/preinstall_npmcheck.js' npm ERR! Exit status 127 npm ERR! npm ERR! Failed at the sails@0.11.0 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 

虽然它说这可能是Sails的一个问题,我没有问题在我的机器上安装它。 当我运行镜像(显然)时,我无法安装它,当我尝试运行ubuntu:15.04镜像并安装npm和Sails时,它告诉我npm是command not foundcommand not found

我还是新来的Docker(和Windows – 我什至不能findnpm-debug.log),所以任何types的build议帮助了很多。

谢谢!

这是nodejs安装的一个问题,在这里介绍: node.js和node有什么不同?

很明显,有三个选项可以解决这个问题:使用nvm自己创建符号链接,或者安装nodejs-legacy而不是nodejs

RUN apt-get -y install nodejs-legacy