使用docker安装nodejs

我已经尝试了以下安装节点到一个centos框但是当它到达./configure时我得到一个错误

Step 6 : RUN tar -zxf node-v0.10.28-linux-x64.tar.gz ---> Running in ebc71472544d ---> c97289348900 Removing intermediate container ebc71472544d Step 7 : RUN cd /node-v0.10.28-linux-x64 ---> Running in 3470f862c586 ---> 1771d01a5da0 Removing intermediate container 3470f862c586 Step 8 : RUN ./configure ---> Running in 16a811766136 /bin/sh: ./configure: No such file or directory 

我的Dockerfile

 #Install NodeJS RUN cd /usr/src RUN wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-x64.tar.gz RUN tar -zxf node-v0.10.28-linux-x64.tar.gz RUN cd /node-v0.10.28-linux-x64 RUN ./configure RUN make && RUN make install 

我使用正确的方式使用Dockerfile安装节点到centos?

我假设这不是整个Dockerfile,对不对? 否则,你至less缺less一个FROM

尝试改变最后4行:

 RUN cd /node-v0.10.28-linux-x64 && ./configure RUN cd /node-v0.10.28-linux-x64 && make RUN cd /node-v0.10.28-linux-x64 && make install 

或者像这样

 RUN cd /node-v0.10.28-linux-x64 && ./configure && make && make install 

据我所知,docker运行每个RUN命令作为一个单独的shell,所以只是改变目录将不会被记住在下一个命令。

这里是一个示例Docker文件来testing这个:

 FROM ubuntu RUN cd /etc RUN pwd 

这里是生成日志:

 Step 0 : FROM ubuntu ---> 99ec81b80c55 Step 1 : RUN cd /etc ---> Running in a4c25ee340a8 ---> 82ad93bdd18c Removing intermediate container a4c25ee340a8 Step 2 : RUN pwd ---> Running in f535178df40c / ---> 495c68757268 

[编辑]

另一个select是使用WORKDIR ,像这样:

 #Install NodeJS WORKDIR /usr/src ADD http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-x64.tar.gz . RUN tar -zxf node-v0.10.28-linux-x64.tar.gz WORKDIR node-v0.10.28-linux-x64 RUN ./configure RUN make && RUN make install