Docker Hub与GitHub(和Bitbucket)集成,允许您在推送新代码时自动构建容器的图像。可以从存储库的标记(或分支)中提取图像的标记,并且可以执行自动测试以确保在图像可供下载之前按预期构建图像。在这篇文章中,我将向您展示如何快速设置这样的工作流程。
创建你的GitHub回购并添加一个 Dockerfile
显然,第一步是在GitHub上设置您的存储库:
接下来,在本地克隆新存储库,添加示例Dockerfile
,并将更改推送回存储库:
将缺省值添加Dockerfile
到存储库中
正如您所看到的,Dockerfile
我们创建的内容非常简单 - 仅使用官方hello-world
图像。
在Docker Hub上启用自动构建
要启用自动构建,您需要将Docker Hub帐户与GitHub上的帐户相关联。登录Docker Hub并转到帐户设置>关联帐户。向下滚动以查找GitHub并单击Connect链接。您将完成通常的OAuth流程,登录GitHub(如果尚未登录)并授权Docker访问您的GitHub存储库。如果一切顺利,您应该收到GitHub的通知:
成功将Docker Hub与GitHub连接
现在是时候创建Docker Hub存储库并将其链接到您的GitHub存储库:
使用GitHub访问创建Docker Hub存储库
这里有一些事情,所以让我们分解它们:
-
命名你的repo
这里不多说,只是使用一个有意义的名字。我选择与我的GitHub存储库相同的名称。 -
选择GitHub repo
在前面的步骤中,您将Docker Hub连接到GitHub,因此您应该在其中看到所有组织和存储库的列表。选择您在上一步中创建的存储库。 -
设置构建规则
这是非常有趣的部分。由于可以随时推送代码,因此您应该让Docker Hub了解何时应该构建映像以及哪个标记应该为其分配映像。您可以使用构建规则配置它们。
只需单击“立即创建 ”(不要单击“ 创建和构建”,因为这将触发手动构建)。
构建规则
要让Docker Hub了解如何以及何时自动构建映像,您可以指定构建规则。您可能有多个并行应用的规则,只需一次git-push即可为您的图像分配多个标记:
为基于标记和主分支的自动构建构建规则</figcaption>
在上图中,我们设置了两个不同的规则 - 让我们看看他们做了什么。
标记规则
“标记规则”允许Docker Hub在您的git存储库中发现新标记时开始构建映像。这应该是您为图像的官方版本构建图像的首选方式。
由于git标签可以是任意的并且包含开发人员可能选择的任何内容,因此Docker Hub允许您定义正则表达式,以便识别git标记的哪个部分应该成为Docker镜像的标记的一部分。在上面的示例中,我们选择/^[0-9.]+$/
了用于提取图像标记的正则表达式。实际上,这告诉Docker Hub我们的git标签符合自动构建的条件,应该是带点的数字形式,这应该是标签的唯一文本。提取并分配给它的图像标记由Docker Tag{sourceref}
下输入的属性表示。
分支规则
“分支规则”允许Docker Hub在特定分支上的活动时开始构建映像。这里的典型用例是根据git存储库的日常活动建立最新映像。要监视的分支在Source下输入,标记将分配给Docker Tag下从其构建的Docker镜像。
建立你的第一个图像
由于我们现在拥有一切,我们只需要标记我们的git存储库的当前状态并将标签推送回GitHub; Docker Hub将为我们创造灵感并为我们构建形象:
推送标签以触发自动构建
实际上,几分钟后Docker Hub自动构建并标记了1.0.0映像:
版本1.0.0的第一个自动构建
要查看我们自动创建的最新图像,我们需要在主分支中推送新的更改:
将更改推送到主分支
几分钟后:
从master分支构建的最新图像
Docker Hub为您提供了两个额外的屏幕,您可以在其上监视构建:
构建屏幕
时间线屏幕
网友评论