Dockerfile'运行git克隆'删除中间容器

我使用Windows 7上的Boot2Docker来构buildDockerfile的开发环境。 当我运行docker build -t myimage dir/of/docker/file ,然后一切工作正常,直到这一行:

 RUN git clone --verbose https://github.com/zsh-users/antigen ~/.antigen/antigen 

这条线的输出是:

 Step 12 : RUN git clone --verbose https://github.com/zsh-users/antigen ~/.antigen/antigen ---> Running in 26cba91e912a Cloning into '/root/.antigen/antigen'... POST git-upload-pack (302 bytes) ---> e0012659884b Removing intermediate container 26cba91e912a Successfully built e0012659884b 

克隆(公共存储库)被删除,容器中不存在〜/。抗原/抗原。 “克隆到…”是红色的,所以我觉得这个命令有问题。 但是,如果我在容器的shell中docker run -it myimage (由docker run -it myimage ),它将克隆它。

我做错了什么,或者我可以做一些设置在Dockerfile中使用git clone ? 以下是它的全部内容:

 FROM debian:testing MAINTAINER BimbaLaszlo RUN apt-get update RUN apt-get install -y curl RUN apt-get install -y gcc g++ make RUN apt-get install -y ctags RUN apt-get install -y git RUN apt-get install -y python python-pip python3 python3-pip RUN apt-get install -y ruby ruby-dev RUN gem install ripper-tags gem-ripper-tags RUN gem install pry byebug RUN apt-get install -y zsh RUN git clone --progress --verbose https://github.com/zsh-users/antigen ~/.antigen/antigen 

你看到红色的颜色不是由错误引起的。 这是因为git clone不使用STDOUT ,我们可以通过以下命令来validation它:

 $ git clone --progress --verbose https://github.com/zsh-users/antigen > /dev/null Cloning into 'antigen'... POST git-upload-pack (255 bytes) remote: Counting objects: 1291, done. remote: Total 1291 (delta 0), reused 0 (delta 0), pack-reused 1291 Receiving objects: 100% (1291/1291), 1.10 MiB | 900.00 KiB/s, done. Resolving deltas: 100% (688/688), done. Checking connectivity... done. $ git clone --progress --verbose https://github.com/zsh-users/antigen 2&> /dev/null 

在第一个命令中,我将所有的STDOUTredirect到了/dev/null ,我们仍然可以看到输出。 但在第二个命令中,我将所有的STDERRredirect到了/dev/null ,所以我们什么都看不到。

docker build ,如果任何输出不在STDOUT ,它将变成红色。 而已。

所以你的Dockerfile没有什么问题。