基于Docker构建Jenkins CI平台

相关概念

  • 持续集成: CI(Continuous Integration) :代码合并,构建,部署,测试,不断的执行这个过程,并且对执行结果反馈。
  • 持续部署: CD (Continuous Deployment) :部署到测试环境,预生产环境,生产环境。
  • 持续交付:将最终产品部署到生产环境给用于使用.
  • 高效的CI/CD环境有一下好处:
    • 及时发现问题
    • 大幅度减少故障率
    • 加快迭代速度
    • 加少开发成本

CI流程


CI流程

相关技术

  • jenkins:持续集成工具
  • docker: 应用运行容器
  • docker-compose:微服务编排(或者采用k8s)
  • harbor: 容器镜像仓库(或者采用阿里云镜像仓库)
  • git:代码管理工具
  • maven: 项目构建工具

具体实施

189机器 安装 harbor(docker,docker-compose) git
188机器 安装 jenkins docker,jdk,maven

  • 部署GIT代码版本仓库 (189)
# yum install git -y
# useradd git
# passwd git
# su - git
# mkdir demo.git
# cd demo.git/
# git --bare init

Jenkins主机测试访问该仓库:

# git clone git@192.168.1.189:/home/git/demo.gi
  • 上传JAVA代码 (188)
    模拟生产项目,拉取github上的一个demo,并上传至本地git库
cd /data0/docker/example
git clone   ...
cd demo
cp -rf ../tomcat-java-demo/* ./
git add .
git commit -m "all"
git push origin master
tar zxvf jdk-8u45-linux-x64.tar.gz
mv jdk1.8.0_45 /usr/local/jdk
tar zxf apache-maven-3.5.0-bin.tar.gz
mv apache-maven-3.5.0 /usr/local/maven
vim /etc/profile
#以下为添加到文件中的内容
#JAVA_HOME=/usr/local/jdk
#PATH=$PATH:$JAVA_HOME/bin:/usr/local/maven/bin
#export JAVA_HOME PATH

#保存退出,并将文件生效 
source /etc/profile
 ## 软件安装目录/data0/software
mkdir -p /data0/java
tar -zxvf apache-tomcat-8.0.46.tar.gz -d /data0/java/
cd /data0/java
mv apache-tomcat-8.0.46 tomcat-jenkins
rm -rf /data0/java/tomcat-jenkins/webapps/*
mkdir -p /data0/java/tomcat-jenkins/webapps/ROOT
cd /data0/software
unzip jenkins.war -d /data0/java/tomcat-jenkins/webapps/ROOT
  • 最后启动tomcat
    打开页面:http://192.168.1.188:8080
    使用默认用户密码登录,设置跳过插件安装、用户设置、实例配置,然后重新进行登录

    配置Git、pipeline 两个插件,首先需要在高级设置里头将插件更新源改成国内的地址(这里采用清华园的地址)
    image.png

地址改成:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,提交之后,进行测试检验。

update-center.json 仍旧使用国外网站,需要进行修改,参考:http://www.bubuko.com/infodetail-3175110.html

  • 创建项目


查看并生成pipeline 拉取代码的脚本信息


需要选定ssh证书,好让它自动链接认证
ssh-keygen


  • ls /root/.ssh

将公钥推送到git服务器上,git密码 a123456
#ssh-copy-id git@192.168.1.189


  • 生成拉取代码脚本配置步骤如:


  • 添加git凭证

  • 添加分支参数,以便拉取代码分支,另外环境、镜像版本,也可以通过参数传递的方式写入
  • 更新pipeline代码
  • 最后保存,构建项目
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容