资讯专栏INFORMATION COLUMN

关于docker 的自动构建

h9911 / 2756人阅读

摘要:什么是自动构建使用第三方服务来帮助编译镜像,可以在互联网上面直接拉取到镜像,减少了繁琐的编译过程。但是有一点不好的是每次在分支提交代码之后,都可以将变更内容更新到,而则会自动新创建一个,至于使用则需要手动将这个指向才行

写在开头

这他么的不是广告

为什么要使用自动构建

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

本地编写测试dockerfile

上传dockerfile到测试环境

删除原有镜像

测试环境构建新镜像

上传dockerfile到线上

删除原有镜像

上线环境构建新镜像

感觉相当蛋疼。。。

什么是自动构建

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

如何构建

以dockerhub举例:

首先需要拥有dockerhub和github帐号(dockerhub的用户名将会是docker镜像的仓库名)

创建一个github仓库在Setting > Deploy keys 中加入ssh公钥(之后在提交代码的时候会用到)

在dockerhub上创建automated仓库

创建完之后在Build Settings 中找到下图在对应位置打勾,意思是当github仓库push代码的时候自动根据dockerfile构建镜像

配置dockerfile的路径,如果Dockerfile在根目录则不需要特别处理,否则需要配置图中的Dockerfile Location

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

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

网络问题

因为dockerhub 经常被墙导致直接从上面拉取不一定成功,我的代替方案是使用国内的daocloud,和dockerhub使用类似,线上环境是国外服务器则使用dockerhub,开发环境则使用国内的docker镜像。
但是有一点不好的是 dockerhub每次在master分支提交代码之后,都可以将变更内容更新到latest Tag,而daocloud则会自动新创建一个tag,至于使用latest Tag则需要手动将这个tag指向latest才行

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26710.html

相关文章

  • CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南

    摘要:围绕软件工程效率提升进行一系列技术内容分享,包括国内外持续集成持续交付,持续部署自动化测试等实践教程工具与资源,以及一些工程师文化相关的程序员。划分了数据库日志安全监控配置管理云服务等个大类,个工具。 CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成、持续交付,持续部署、自动化测试、 DevOps 等实践教程、工具与资源,以及一些工程师文化相关...

    monw3c 评论0 收藏0
  • gradle 应用构建分享(纯干货)

    摘要:是什么是构建工具特点构建任何应用自动化一切提供更快的构建上面的三项全是官方解释对于第点没有任何疑问,可以构建任何应用。 阅读本文你需要一些 gradle/groovy 的基本知识,本文所讲的内容全是利用各种插件去让自身的应用构建发布更简单,不会涉及到基础知识 在 2016 年时我写过一个示例《springboot+gradle+vue+webpack 组合使用》,经过了1年多我发现很...

    Ryan_Li 评论0 收藏0
  • CI Weekly #19 | 关于软件开发模型思考,以及最新 CI/CD 实践分享

    摘要:以上是的所有技术分享,如有问题,请联系我们围绕软件工程效率提升进行一系列技术内容分享,包括国内外持续集成持续交付,持续部署自动化测试等实践教程工具与资源,以及一些工程师文化相关的程序员。 五月一来,夏天便悄然而至。flow.ci 也带来了几个新的变化,帮你进一步优化开发工作流。一起来看看这几个重点功能: 支持 iOS 项目 Xcode8.3 构建 iOSer 们重点来了,flow....

    CoderBear 评论0 收藏0
  • 基于 Docker ,Gogs,Jenkins,Kubernetes 实践工程源代码自动构建和持续

    本期目标 : 基于 Centos 7.6 , 封装出一个可用于运行 php 项目的开箱即用镜像本文不讨论 dockerfile 语法 , 并且假设你懂得基本的类unix 操作系统常识并拥有类unix 运行环境 (包括但不限于安装了mac 或 linux 的实体机 , 类unix虚拟机 , 安装了 MinGW 或 CygWin 的 windows 机器) , 并且认为你懂得基本的 docker 操作...

    Achilles 评论0 收藏0
  • 基于 Docker ,Gogs,Jenkins,Kubernetes 实践工程源代码自动构建和持续

    本期目标 : 基于 Centos 7.6 , 封装出一个可用于运行 php 项目的开箱即用镜像本文不讨论 dockerfile 语法 , 并且假设你懂得基本的类unix 操作系统常识并拥有类unix 运行环境 (包括但不限于安装了mac 或 linux 的实体机 , 类unix虚拟机 , 安装了 MinGW 或 CygWin 的 windows 机器) , 并且认为你懂得基本的 docker 操作...

    RayKr 评论0 收藏0

发表评论

0条评论

h9911

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<