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
在第一个命令中,我将所有的STDOUT
redirect到了/dev/null
,我们仍然可以看到输出。 但在第二个命令中,我将所有的STDERR
redirect到了/dev/null
,所以我们什么都看不到。
在docker build
,如果任何输出不在STDOUT
,它将变成红色。 而已。
所以你的Dockerfile没有什么问题。