Dockerfile工作时,每一行交互运行,但无法使用docker构build

我有一个简单的Dockerfile ,用于下载node.js源代码压缩包,校验和,提取,构build和安装它。 校验和在交互式泊坞窗容器中手动运行时工作,但在构buildDockerfile时运行完全相同的命令时失败。

作品:

docker运行-i -t ubuntu:12.04 / bin / bash

cd / tmp

apt-get update -y

apt-get install wget build-essential automake -y

wget http://nodejs.org/dist/latest/node-v0.10.26.tar.gz

wget http://nodejs.org/dist/latest/SHASUMS256.txt

sha256sum -c SHASUM256.txt 2>&1 | grep -qs OK

tar -xvf node-v0.10.26.tar.gz && cd node-v0.10.26

./configure && make && make install

不起作用:

sudo docker build -t =“my_docker_node_image_01”。

错误是:

sudo docker build -t="my_docker_node_image_01" . Uploading context 7.168 kB Uploading context Step 0 : FROM ubuntu:12.04 ---> 9cd978db300e Step 1 : RUN cd /tmp ---> Using cache ---> 0467ad75bbd6 Step 2 : RUN apt-get update -y ---> Using cache ---> d2933f250090 Step 3 : RUN apt-get install wget build-essential automake -y ---> Using cache ---> e8a71b28782a Step 4 : RUN wget http://nodejs.org/dist/latest/node-v0.10.26.tar.gz ---> Using cache ---> bae7de7b46f7 Step 5 : RUN wget http://nodejs.org/dist/latest/SHASUMS256.txt ---> Using cache ---> 245f6b6ceb84 ---> 77532c879864 Step 6 : RUN sha256sum -c SHASUM256.txt 2>&1|grep -qs OK ---> Running in 77765e80f55b 2014/04/22 22:27:32 The command [/bin/sh -c sha256sum -c SHASUM256.txt 2>&1|grep -qs OK] returned a non-zero code: 1 

我试图添加less SHASUMS256.txt到Dockerfile只是为了确认该文件已成功下载完整,它是,但仍然得到错误。

我不知道如何解决这个问题,因为通常我会手动运行交互容器中的所有步骤,以查看出了什么问题。 任何build议非常感谢。

我想我知道了,这只是一个错字,至less在我剪切和粘贴上面的命令的时候! 您下载SHASUMS256.txt但testing一个名为SHASUM256.txt (缺lessS )的文件。 因为你扔掉输出,并将其pipe理到grep,你没有看到这个错误。

 $ sha256sum -c SHASUM256.txt sha256sum: SHASUM256.txt: No such file or directory $ sha256sum -c SHASUM256.txt 2>&1|grep -qs OK $ echo $? 1 

做一个echo $? 告诉你所执行的最后一个命令的返回码(在本例中为1 )。 通过纠正这个文件,现在对我来说是有效的:

  $ sha256sum -c SHASUMS256.txt 2>&1|grep -qs OK $ echo $? 0