这是完整的dockerfile
FROM ubuntu:12.04
# Create directory
RUN mkdir -p /dir/subdir
# Download wget
RUN apt-get install -y wget
# Make sure package is up to date
RUN apt-get update
# Install nodejs
WORKDIR /dir
RUN wget http://nodejs.org/dist/v0.10.26/node-v0.10.26-linux-x64.tar.gz
RUN tar -zxf node-v0.10.26-linux-x64.tar.gz
RUN cd /node-v0.10.26-linux-x64 && ./configure
RUN cd /node-v0.10.26-linux-x64 && make
RUN cd /node-v0.10.26-linux-x64 && make install
# Update again
RUN apt-get-update
# Copy all the files
ADD dir/subdir dir/subdir
EXPOSE 8080
CMD ["node", "/dir/subdir/index.js"]
这是日志中出现错误的一部分
Step 6 : RUN tar -zxf node-v0.10.26-linux-x64.tar.gz
---> Running in xxxxxxx
---> xxxxxxxxxxxxxx
Removing intermediate container xxxxxxxxxxxx
Step 7 : RUN cd /node-v0.10.26-linux-x64 && ./configure
---> Running in xxxxxxxx
[91m/bin/sh: 1: cd: can't cd to /node-v0.10.26-linux-x64
[0m
The command [/bin/sh -c cd /node-v0.10.26-linux-x64 && ./configure] returned a non-zero code: 2
有谁知道错误2意味着什么以及如何解决它?
答案 0 :(得分:3)
这次我测试了它。
FROM ubuntu:12.04
# Create directory
RUN mkdir -p /dir/subdir
# Make sure package is up to date
RUN apt-get update
# Install dependencies
RUN apt-get install -y build-essential openssl libssl-dev pkg-config python
# Install nodejs
WORKDIR /dir
ADD http://nodejs.org/dist/v0.10.29/node-v0.10.29.tar.gz /dir/
RUN tar -zxf node-v0.10.29.tar.gz
WORKDIR /dir/node-v0.10.29
RUN ./configure && make && make install
WORKDIR /dir
# Copy all the files
ADD dir/subdir dir/subdir
EXPOSE 8080
CMD ["node", "/dir/subdir/index.js"]
答案 1 :(得分:2)
Docker(v1.0.0)将WORKDIR
用于后续RUN
。 cd /node-v0.10.26-linux-x64
/dir
{{1}}中的{{1}}无法解决问题。