+-

我在 Windows 7上使用Boot2Docker来用Dockerfile构建我的开发环境.当我运行docker build -t myimage目录/ 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
(公共存储库的)克隆被删除,〜/ .antigen / antigen在容器中不存在.
“克隆到…”是红色的,因此我认为命令有问题.但是,如果我在容器的外壳中运行它(由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,我们可以通过以下命令验证它:
$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重定向到/ dev / null,我们仍然可以看到输出.但是在第二个命令中,我将所有STDERR重定向到了/ dev / null,所以我们什么也没看到.
在docker build中,如果STDOUT中没有任何输出,它将变为RED.而已.
因此,您的Dockerfile没问题.
点击查看更多相关文章
转载注明原文:Dockerfile’RUN git clone’删除中间容器 - 乐贴网