Docker Hub结合Github自动化构建多版本镜像

Docker Hub结合Github自动化构建多版本镜像

让Github与Docker Hub进行绑定

Docker Hub->Create->Create Automated Build

第一次进行该步骤需要Github的授权。会自动跳到Github同意授权即可。


在Github上创建一个Docker构建项目,在里面实现Dockerfile。

该步骤可以在本地完成,然后提交到自己的Github仓库中。


然后继续进行第一个步骤,在右侧选择Github中的构建仓库:


推送更新,自动构建

每当Dockerfile有新的修改推送到Github的构建仓库中时,在Docker Hub这里就会进行自动构建。


基于tag的推送

在默认的构建中,每推送一次代码,构建的都是全新的latest版本的构建。不方便对镜像的版本控制。

最好的方式是:基于push的提交构建出latest版本镜像,基于tag的提交构建出指定版本的镜像。

首先在Docker Hub中设置这两种构建方式:



这里需要设置两种方式,当把新的commit推送Github时,Branch那里就会被触发,构建出一个latest版本。当把新的tag推送到Github时,Tag那里就会被触发,构建出一个tag版本。


推送tag到Github

【首先别忘了add、commit、push代码。然后再去做tag的事情】

执行以下git命令推送一个tag到Git服务器:


对最新的一次commit打个tag,tag的版本为1.6   . 到时候构建出来的镜像的版本也是1.6

git tag -a 1.6 -m “message"


推送本地的tag到远程。

git push origin --tags


标签本地删除:

git tag -d v1.1

删除远程标签

git push origin :refs/tags/v1.1

完成以上步骤后,Docker Hub就会分别基于代码的提交和tag的提交,分别构建两次。两次构建出来的版本分别是latest、1.6 。


通过这种自动构建的方式,我们就不需要手动“docker build”方式构建镜像了,也不用手动的维护镜像的版本号。当然在推送Dockerfile时,最好都是能在本地测试通过的。之后的版本、镜像控制就交给Git和Docker Hub了。这样我们在任何机器上都可以非常快速的从Docker Hub拉取镜像了。


案例

Tomcat-CentOS镜像Github地址:https://github.com/chenyufeng1991/tomcat-centos-dockerfile

Tomcat-CentOS镜像Docker hub地址:https://hub.docker.com/r/chenyufeng/tomcat-centos/


更多见:https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%89%93%E6%A0%87%E7%AD%BE

  • 发表于 2020-04-15 15:52
  • 阅读 ( 3294 )
  • 分类:linux

0 条评论

请先 登录 后评论
omicsgene
omicsgene

生物信息

698 篇文章

作家榜 »

  1. omicsgene 698 文章
  2. 安生水 347 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. 红橙子 78 文章
  7. rzx 74 文章
  8. CORNERSTONE 72 文章