Docker:如何从Github存储库上的非主分支构建映像

时间:2014-12-29 05:39:34

标签: git github docker

是否可以从Github存储库上的非主分支构建映像?

例如,我有一个存储库//github.com/myAccount/docker-myImage,其中包含我想要用于图像的分支development。不幸的是,以下命令似乎只允许从master分支构建:

docker build -t myAccount/myImage git://github.com/myAccount/docker-myImage

以下是man docker build的相关文档:

Building an image using a URL
       This will clone the specified Github repository from the URL and use it as context.
       The Dockerfile at the root of the repository is used as Dockerfile. This only works
       if the Github repository is a dedicated repository.

              docker build github.com/scollier/Fedora-Dockerfiles/tree/master/apache

              Note: You can set an arbitrary Git repository via the git:// schema.

也许还有其他选择,例如docker build -t myAccount/myImage git://github.com/myAccount/docker-myImage:development

4 个答案:

答案 0 :(得分:11)

docker build -t myAccount/myImage https://github.com/myAccount/docker-myImage.git#development

有关更多选项,请参阅docker build command reference

答案 1 :(得分:3)

您引用的文档提到了如何指定分支:

github.com/scollier/Fedora-Dockerfiles/tree/master/apache

tree/master更改为您想要的分支并查看。

答案 2 :(得分:1)

我在Freenode IRC #docker提出了这个问题,用户scollier与我联系,他说他会回复我这个问题。我相信他参与了我在问题中提到的Docker文档。在此期间,我通过在Dockerfile添加以下内容找到了解决方法:

RUN git clone something && cd something && git checkout branch

这个解决方案似乎解决了我的所有需求。感谢您的支持!

答案 3 :(得分:0)

似乎您需要先创建分支,然后Docker容器的git实现才能将其从源中拉出:

git fetch
git checkout -b branch_name
git pull origin branch_name