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/ 。