@初探在容器上构建持续部署( 二 )
我们的流程基本是上面讲的狭义流程 , 但由于没有Nexus , 我们稍微变通了一下 , 改由从源码库直接下载源程序 , 步骤如下:
下载源码:从github下载源代码到Jenkins的运行环境
测试:这一步暂时没有实际内容
生成镜像:创建镜像 , 并上传到Docker hub 。
部署镜像:将生成的镜像部署到k8s
在创建Jenkins项目之前 , 先要做些准备工作:
- 建立Docker Hub账户
- 在Jenkins上创建凭证(Credentials)
用管理员账户登录 Jenkins主页面后 , 找到 Manage Jenkins-》Credentials-》System -》Global Credentials -》Add Credentials , 如下图所示输入你的Docker Hub的用户名和口令 。 “ID”是后面你要在脚本里引用的 。
本文插图
- 创建预装Docker和k8s的Jenkins镜像
下面是镜像文件(Dockerfile-modified-jenkins)
FROM jenkins/jenkins:lts
USER root
ENV DOCKERVERSION=19.03.4
RUN curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKERVERSION}.tgz
&& tar xzvf docker-${DOCKERVERSION}.tgz --strip 1
-C /usr/local/bin docker/docker
&& rm docker-${DOCKERVERSION}.tgz
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
&& chmod x ./kubectl
&& mv ./kubectl /usr/local/bin/kubectl
上面的镜像在“jenkins/jenkins:lts”的基础上又安装了Docker和kubectl , 这样就支持这两个软件了 。 镜像里使用的是docker的19.03.4版本 。 这里装的只是“Docker CLI” , 没有Docker引擎 。 用的时候还是要把虚拟机的卷挂载到容器上 , 使用虚机的Docker引擎 。 因此最好保证容器里的Docker版本和虚机的Docker版本一致 。
使用如下命令查看Docker版本:
vagrant@ubuntu-xenial:/$ docker version
详细情况请参见Configure a CI/CD pipeline with Jenkins on Kubernetes:https://developer.ibm.com/tutorials/configure-a-cicd-pipeline-with-jenkins-on-kubernetes/
准备工作已经完成 , 现在要正式创建Jenkins项目:
- Jenkins脚本:
本文插图
如果你不熟悉安装和创建Jenkins项目 , 请参阅在k8s上安装Jenkins及常见问题
下面就是jenkins-k8sdemo脚本文件:
def POD_LABEL = ''k8sdemopod-${UUID.randomUUID.toString}''
podTemplate(label: POD_LABEL, cloud: 'kubernetes', containers: [
containerTemplate(name: 'modified-jenkins', image: 'jfeng45/modified-jenkins:1.0', ttyEnabled: true, command: 'cat')
推荐阅读
- 【大连】大连化物所:通过纳米反应器的电催化效应构建高性能的锂硫电池
- []构建120Hz壁垒,全球最快充电,Find X2标准版表现均衡且全面
- 『甘肃』“绿”动甘肃加快构建清洁高效能源体系
- 砍柴网:华为云 Volcano 容器批量计算正式成为 CNCF 官方项目
- 计算:引领云原生|华为云Volcano容器批量计算正式成为CNCF官方项目
- 『karl』视觉设计软件公司「Lucid Software」获 5200 万美元融资,帮助用户构建工作图表
- 「海信」海信发布2020年4大系列电视新品 构建超画质和全场景娱乐体验
- 「」从0到100,用户画像的构建思路,值得学习参考!
- 「路由器」接上U盘就能构建虚拟局域网!蒲公英X5路由器使用体验分享
- 『IBM中国』全球CEO洞察:构建数据优势,这3大领域是关键!
