美文网首页tool for work
在推送GitHub时自动构建Docker镜像

在推送GitHub时自动构建Docker镜像

作者: 开心人开发世界 | 来源:发表于2019-09-23 06:32 被阅读0次

    Docker HubGitHub(和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为您提供了两个额外的屏幕,您可以在其上监视构建:


    构建屏幕


    时间线屏幕

    翻译自:https://medium.com/better-programming/build-your-docker-images-automatically-when-you-push-on-github-18e80ece76af

    相关文章

      网友评论

        本文标题:在推送GitHub时自动构建Docker镜像

        本文链接:https://www.haomeiwen.com/subject/ejlructx.html