我已经尝试过以下方法将节点安装到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?
答案 0 :(得分:3)
我假设这不是整个Dockerfile,对吗?否则,您至少缺少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文件示例:
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
[编辑]
另一种选择是使用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
答案 1 :(得分:-1)
我使用nvm的解决方案:
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
RUN source $HOME/.bashrc && nvm install 12.14.1
RUN ln -s $HOME/.nvm/versions/node/v12.14.1/bin/node /usr/bin/node
RUN ln -s $HOME/.nvm/versions/node/v12.14.1/bin/npm /usr/bin/npm
RUN node -v
RUN npm -v