docker build可以使用git分支的url吗?

根据文档 ,可以将一个git url传递给一个build命令: 在这里输入图像说明

但是,如果git url需要成为分支名称会发生​​什么? 换句话说,我该如何做同样的事情呢:

git clone -b my-firefox-branch git@github.com:creack / docker-firefox.git

到目前为止,还不行。

这是我得到的:

 $ docker build git@github.com:shawnzhu/docker-ruby.git#branch1 2014/12/04 08:19:04 Error trying to use git: exit status 128 (Cloning into '/var/folders/9q/bthxttfj2lq7jtz0b_f938gr0000gn/T/docker-build-git859493111'... fatal: remote error: is not a valid repository name Email support@github.com for help ) 

如果你看看docker CLI代码的这一行 ,那么在使用--depth=1 docker build <git-repo-url>时候, --depth=1 git --depth=1 URL(甚至没有--depth=1 )进行recursion的git克隆。

不过,由于#<branch-name>#<commit>是很多stream行工具(如npm和bower)采用的github URL的stream行语法,所以对Docker(如果人们需要的话)可能是一个有趣的改进。

使用git:// (或https:// )开始你的URL,并简单地在#后面追加分支名称。

我只是分叉OP的回购,并创build了一个分支来确认它的工作(docker版本1.11.1):

 root@box:~# docker build git://github.com/michielbdejong/docker-firefox#michielbdejong-patch-1 Sending build context to Docker daemon 52.22 kB Step 1 : FROM ubuntu:12.04 12.04: Pulling from library/ubuntu 4edf76921243: Downloading [==========> ] 9.633 MB/44.3 MB ^Croot@box:~# 

有关完整的文档,请参阅https://docs.docker.com/engine/reference/commandline/build/