马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
如何利用Travis-CI在线构建yumrepo镜像 前 言 最近睿云智合开源的Kubernetes图形化离线部署工具- Breeze 引起了社区广泛关注,并收到了一些用户的好评。部分深入技术细节的朋友开始向我们咨询工具所使用的Docker镜像的制作方法,在这里我们以yum-repo这个功能模块为例向大家解析如何利用在线CI工具Travis结合Github及DockerHub来自动构建项目所需的镜像。 操作解析 在这个项目里,我们有一个关键文件 .travis.yaml它是我们Travis的工程文件,打开它,其内容如下: 内容理解并不困难,其功能也就是在Travis-CI平台启动docker环境,并下载一个centos:7.4.1708的容器镜像,通过dockerrun命令拉起改容器,并做好相应的文件挂载(挂载的是用于安装Kubernetes所用到的rpm包的yumrepo定义文件,该文件就在Github项目里,另外再将容器内的/rpms目录挂载出来用于后续阶段构建新的容器镜像)。然后开始了一系列的yum下载包的操作,也就是将希望的rpm包都下载到容器内的/rpms目录,该目录被挂载出来用于后续阶段的镜像构建。 createrepo命令即我们所熟悉的制作yumrepo仓库的命令,最后的dockerbuild命令构建镜像时使用了变量$TRAVIS_BRANCH,也即是Github项目的版本分支,这是因为Travis-CI和我们的Github项目关联时会将Github项目的Branch作为自己CI项目的Branch。 最后我们将生成的镜像推送至DockerHub,注意这里您就应该修正DockerHub账号名为您自己的用户名了。例如这里: 如果该Github项目为私有项目,那么您可以直接在这里把$DOCKER_USERNAME和 $DOCKER_PASSWORD改为您实际的账号及密码。如果该Github项目希望是公开被访问的,那么您可以将此处保留为变量方式。改变量的具体赋值应当在Travis-CI平台里进行定义,这样您可以公开该Github项目而无需担心密码泄露。而Travis-CI平台里定义的环境变量是只有使用您Travis账号登录后才能查看的。以这样的方式既便于源码项目的公开也便于每个人构建出自己的镜像版本。 下面我们来看看最核心的步骤,如何登录Travis-CI平台并管理我们的Github项目进行自动构建任务。 点击 +号关联前面所Fork过来的新项目 打开开关,并点击Settings按钮: 添加环境变量,用户名可以勾选在构建日志中显示: 密码当然就别打开这个开关了: 环境变量输入完毕后是这样的: 接下来的工作当然需要在DockerHub上创建您自己的一个镜像项目了:
然后去提交一次项目代码变更吧,Travis-CI就会自动开启构建过程了,我们可以在Github项目的branch里查看Travis构建状态了(小圆点颜色为绿色表示构建通过,这里可以直接点击小圆点跳转到Travis页面查看构建日志细节)
现在我们就可以在任意地方通过docker pull alanpeng/yum-repo:master这样的方式来下载镜像了。进一步,如果我们在Github项目里创建出不同版本分支或Release,这可以得到不同tag的镜像了。例如 alanpeng/yum-repo:v1.9.8和具体某个k8s版本对应。
|