各位老铁们好,相信很多人对ci网站源码分享都不是特别的了解,因此呢,今天就来为大家分享下关于ci网站源码分享以及各种网站源码的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
前言
最近睿云智合开源的Kubernetes图形化离线部署工具-Breeze引起了社区广泛关注,并收到了一些用户的好评。部分深入技术细节的朋友开始向我们咨询工具所使用的Docker镜像的制作方法,在这里我们以yum-repo这个功能模块为例向大家解析如何利用在线CI工具Travis结合Github及DockerHub来自动构建项目所需的镜像。
操作解析
首先,我们需要将Breeze的yum-repo子项目fork到自己的Github账号,访问https://github.com/wise2c-devops点击Fork按钮,选择自己Github账号:
在这个项目里,我们有一个关键文件.travis.yaml它是我们Travis的工程文件,打开它,其内容如下:
sudo:
required
services:
-docker
before_install:
-dockerpullcentos:7.4.1708
script:
->
dockerrun-t–rm-v${PWD}/rpms:/rpms-v${PWD}/kubernetes.repo:/etc/yum.repos.d/kubernetes.repocentos:7.4.1708
bash-c
“yuminstall-yhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm&&
yuminstall-yhttps://download.ceph.com/rpm-luminous/el7/noarch/ceph-release-1-1.el7.noarch.rpm&&
mkdir-p/rpms&&
yumremove-ypython-chardet&&
yum-yinstall–downloadonly–downloaddir=/rpmsdockerdocker-pythondocker-composepython-chardetpython-requests&&
yum-yinstall–downloadonly–downloaddir=/rpmsauditrsyncjqgittcpdumpncbind-utilsnet-tools&&
yum-yinstall–downloadonly–downloaddir=/rpmsceph-deploycephceph-radosgwrbd-nbdrbd-mirroropen-vm-toolsnfs-utils&&
yum-yinstall–downloadonly–downloaddir=/rpmskubernetes-cni-0.6.0kubectl-1.10.3kubelet-1.10.3kubeadm-1.10.3&&
yuminstall-ycreaterepo&&
yumcleanall&&
createrepo/rpms”
-sudochmod-R755${PWD}/rpms
-dockerbuild-talanpeng/yum-repo:$TRAVIS_BRANCH.
-dockerlogin-u$DOCKER_USERNAME-p$DOCKER_PASSWORD
-dockerpushalanpeng/yum-repo:$TRAVIS_BRANCH
内容理解并不困难,其功能也就是在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账号名为您自己的用户名了。例如这里:
-dockerbuild-talanpeng/yum-repo:$TRAVIS_BRANCH.
-dockerlogin-u$DOCKER_USERNAME-p$DOCKER_PASSWORD
-dockerpushalanpeng/yum-repo:$TRAVIS_BRANCH
如果该Github项目为私有项目,那么您可以直接在这里把$DOCKER_USERNAME和$DOCKER_PASSWORD改为您实际的账号及密码。如果该Github项目希望是公开被访问的,那么您可以将此处保留为变量方式。改变量的具体赋值应当在Travis-CI平台里进行定义,这样您可以公开该Github项目而无需担心密码泄露。而Travis-CI平台里定义的环境变量是只有使用您Travis账号登录后才能查看的。以这样的方式既便于源码项目的公开也便于每个人构建出自己的镜像版本。
下面我们来看看最核心的步骤,如何登录Travis-CI平台并管理我们的Github项目进行自动构建任务。
先使用您的Github账号登录Github站点;然后登录网站https://www.travis-ci.org并点击SigninwithGithub,此时会出现关联登录许可,同意即可:
点击+号关联前面所Fork过来的新项目
打开开关,并点击Settings按钮:
添加环境变量,用户名可以勾选在构建日志中显示:
密码当然就别打开这个开关了:
环境变量输入完毕后是这样的:
接下来的工作当然需要在DockerHub上创建您自己的一个镜像项目了:
然后去提交一次项目代码变更吧,Travis-CI就会自动开启构建过程了,我们可以在Github项目的branch里查看Travis构建状态了(小圆点颜色为绿色表示构建通过,这里可以直接点击小圆点跳转到Travis页面查看构建日志细节)
现在我们就可以在任意地方通过dockerpullalanpeng/yum-repo:master这样的方式来下载镜像了。进一步,如果我们在Github项目里创建出不同版本分支或Release,这可以得到不同tag的镜像了。例如alanpeng/yum-repo:v1.9.8和具体某个k8s版本对应。
关于Wise2C睿云智合
深圳睿云智合科技有限公司成立于2012年,总部位于深圳,并分别在成都、深圳设立了研发中心,北京、上海设立了分支机构,核心骨干人员全部为来自金融、科技行业知名企业资深业务专家、技术专家。早期专注于为中国金融保险等大型企业提供创新技术、电子商务、CRM等领域专业咨询服务。
自2016年始,在率先将容器技术引进到中国保险行业客户后,公司组建了专业的容器技术产品研发和实施服务团队,旨在帮助中国金融行业客户将容器创新技术应用于企业信息技术支持业务发展的基础能力改善与提升,成为中国金融保险行业容器技术服务领导品牌。
此外,凭借多年来在呼叫中心领域的业务经验与技术积累,睿云智合率先在业界推出基于开源软交换平台FreeSwitch的微服务架构多媒体数字化业务平台,将语音、视频、webchat、微信、微博等多种客户接触渠道集成,实现客户统一接入、精准识别、智能路由的CRM策略,并以容器化治理来支持平台的全应用生命周期管理,显著提升了数字化业务处理的灵活、高效、弹性、稳定等特性,为帮助传统企业向“以客户为中心”的数字化业务转型提供完美的一站式整体解决方案。
客户&合作伙伴
好了,关于ci网站源码分享和各种网站源码的问题到这里结束啦,希望可以解决您的问题哈!
