Docker Hub 之 自动构建

作者: Dsir 分类: Server 发布时间: 2018年05月31日 17时12分

前言

在上一篇文章中简单的介绍了 Docker Hub使用 的基本使用 ,在本章节中我会把我总结的 Webhooks 自动构建一步步的分享给大家。

什么是自动构建

使用第三方docker服务来帮助编译镜像,可以在互联网上面直接拉取到镜像,减少了繁琐的编译过程。这真的体现了run any where这个口号

为什么要使用自动构建

比如产品和开发环境都依赖docker,在部署的时候发现修改线上镜像非常的麻烦,通常一个完整的部署需要以下几步:

  • 本地编写测试dockerfile

  • 上传dockerfile到测试环境

  • 删除原有镜像

  • 测试环境构建新镜像

  • 上传dockerfile到线上

  • 删除原有镜像

  • 上线环境构建新镜像

从GitHub自动构建

1527754018850870.png

1、创建自动构建仓库

1527754050635820.png

2、需要连接你的 GitHub 或者 Bitbucket,基于GitHub进行以下操作

1527754078450877.png

3、设置Docker Hub对 GitHub账户的有读和写的权限

1527754110312118.png

4、登录GitHub账户进行授权

1527754139117852.png

5、账户关联后需要在点击 Create Automated Build 创建 (第一步创建自动构建仓库),然后选择 Create GitHub,再根据你目前需求选择你要构建的Git仓库

1527754168914970.png

6、如果Dockerfile在根目录则不需要特别处理,否则需要点击 Click here to customize 配置你的Dockerfile路径,Create之后会自动跳转到当前创建的仓库。

1527754327247828.png

7、设置 Docker Hub 在 GitHub 仓库 push 代码的时候自动根据 dockerfile 构建镜像

1527754363372874.png

8、存储库链接可让您将一个自动编译链接与另一个链接。如果一个自动构建得到更新,Docker会触发另一个构建。这可以很容易地确保相关图像保持同步。您可以链接多个图像存储库。您只需链接两个相关版本的一侧。连接双方导致无尽的构建循环。

添加链接:

    1.转到自动构建存储库的构建设置。

    2.在“储存库链接”部分中,输入图像储存库名称。

    远程存储库名称应该是官方存储库名称ubuntu或公共存储库名称namespace/repoName

    3.按添加

1527754556254384.png

9、push 你的 dockerfile 到github,再看 dockerhub 的Build Details会发现已经在Build镜像了(文档上说五分钟内提交的代码之后构建一次,其他的则会忽略)

1527754592154130.png

状态:

  • Queued: 排队状态,队列时间取决于可用的并发构建数量。

  • Building: 图像正在建立中。

  • Success: 图像已经建成。

  • Error: 您的 image 存在问题。点击该行进入 Builds Details 屏幕。页面顶部的横幅显示日志文件的最后一个句子,表示错误是什么。如果您需要更多信息,请滚动至屏幕底部至日志部分。

10、当镜像构建完毕变成success状态时 docker pull xxxx/xxxx 就已经可以看到已经在拉取镜像了,之后dockerfile更新了也只需要在服务器上面重新执行上面的命令就可以了,是不是方便多了

Webhooks 自动构建

注:因为Webhooks不区分仓库类型,就直接基于刚才创建的仓库进行分享了

1、Webhook是发送到提供服务的定义URL的POST请求。如果还没定义好,可以临时填写一个网址如http://baidu.com也可以(后期接口完成后再改),其它默认。点击save时,webhook会发送一个测试请求,用于测试url的有效性。测试通过后就成功的创建了一个webhook

1527754650183534.png

2、Docker Hub 向指定的 URL 发送的 POST 数据如下:
{
  "callback_url": "https://registry.hub.docker.com/u/svendowideit/testhook/hook/2141b5bi5i5b02bec211i4eeih0242eg11000a/",
  "push_data": {
    "images": [
        "27d47432a69bca5f2700e4dff7de0388ed65f9d3fb1ec645e2bc24c223dc1cc3",
        "51a9c7c1f8bb2fa19bcd09789a34e63f35abb80044bc10196e304f6634cc582c",
        "..."
    ],
    "pushed_at": 1.417566161e+09,
    "pusher": "trustedbuilder",
    "tag": "latest"
  },
  "repository": {
    "comment_count": 0,
    "date_created": 1.417494799e+09,
    "description": "",
    "dockerfile": "#\n# BUILD\u0009\u0009docker build -t svendowideit/apt-cacher .\n# RUN\u0009\u0009docker run -d -p 3142:3142 -name apt-cacher-run apt-cacher\n#\n# and then you can run containers with:\n# \u0009\u0009docker run -t -i -rm -e http_proxy http://192.168.1.2:3142/ debian bash\n#\nFROM\u0009\u0009ubuntu\n\n\nVOLUME\u0009\u0009[\/var/cache/apt-cacher-ng\]\nRUN\u0009\u0009apt-get update ; apt-get install -yq apt-cacher-ng\n\nEXPOSE \u0009\u00093142\nCMD\u0009\u0009chmod 777 /var/cache/apt-cacher-ng ; /etc/init.d/apt-cacher-ng start ; tail -f /var/log/apt-cacher-ng/*\n",
    "full_description": "Docker Hub based automated build from a GitHub repo",
    "is_official": false,
    "is_private": true,
    "is_trusted": true,
    "name": "testhook",
    "namespace": "svendowideit",
    "owner": "svendowideit",
    "repo_name": "svendowideit/testhook",
    "repo_url": "https://registry.hub.docker.com/u/svendowideit/testhook/",
    "star_count": 0,
    "status": "Active"
  }}
最后构建脚本进行一系列处理之后触发docker下载镜像等等命令(类似Git的钩子脚本一样)


总结

学无止境,有种越活越不会的感觉

如果觉得我的文章对您有用,请随意打赏、分享。您的支持将鼓励我继续创作!

微博分享
103条评论
  • Writingagede

    2019年02日19日 01:03

    essay writing competition topics http://research-paper-topic.ultius.collegeessayexamples.gdn essay outline example apa

  • Efabekagede

    2019年02日21日 05:06

    greenhouse effect and global warming essay http://online-review-writing-jobs.essayshark.collegeessayexamples.gdn sample application essay

  • Lloydner

    2019年02日21日 19:42

    【揚歌-教學麥克風直營店】官方線上購物網站─JM-180B有線麥克風擴音器│無線麥克風擴音器│揚歌小蜜蜂│專營教學麥克風及教學擴音器 https://mic-shop.com/

  • Williamplack

    2019年02日21日 19:42

    【揚歌-教學麥克風直營店】官方線上購物網站─JM-180B有線麥克風擴音器│無線麥克風擴音器│揚歌小蜜蜂│專營教學麥克風及教學擴音器 https://mic-shop.com/

  • Best Payday Loan

    2019年02日24日 02:39

    <a href="http://loansforbadcredit2019.com/">unsecured loans for bad credit</a>

  • Money Loan

    2019年02日24日 02:39

    <a href="http://loansforbadcredit2019.com/">loans for bad credit</a>

  • Payday Express

    2019年02日24日 02:40

    <a href="https://loansforbadcredit2019.com/">loans for bad credit</a>

  • Direct Lender Loans

    2019年02日24日 03:18

    <a href="https://loansforbadcredit2019.com/">loans for bad credit</a>

  • Nip

    2019年02日24日 11:50

    <a href=https://dedicatet.com/tags/cheker-akkauntov/>взлом соц сетей 2019</a>

发表评论

电子邮件地址不会被公开。 必填项已用*标注