docker+jenkins实现持续集成
持续集成的概念我就不多说了,网上一大堆,今日主要讲讲怎么通过docker 和jenkins实现项目的持续集成。看着简单,网上完整教程很少,本人摸索很久才搞定!!!
一、首先安装docker。安装过程可以自行百度
二、通过docker拉取jenkins镜像:拉取镜像也很简单,可直接通过docker pull jenkins即可获取。也可从docker.hub上获取官方长期支持的镜像:docker pull jenkins/jenkins:lts
三、获取到镜像后。可通过docker images来查看 已获取到的镜像列表
已有的镜像列表
四、开始运行jenkins镜像
运行jenkins前首先明确几点:
1、端口映射:通过端口映射的方式将容器的相关端口映射到主机上
(1)jenkins是一个镜像,通过运行jenkins镜像,产生jenkins容器,容器寄主在主机上,想访问jenkins容器,就得通过主机访问,此时就需要一个容器与主机的映射端口:-p 主机映射端口号:容器端口号(-p 12000:8080)
(2)同理,访问了jenkins容器后,需要对jenkins的持续集成进行相关配置与项目的配置,项目在jenkins容器中,访问项目也需要将项目端口号映射到主机,同上-p 主机映射端口号:项目端口号(-p 8090:8090)
2、挂载:通过挂载的方式将容器的文件路径挂载到主机目录下
(1)maven仓库挂载:减少每次构建项目时maven依赖从远程拉取的工作-v 主机目录:jenkins目录(-v /opt/repository:/opt/repository)
(2)jar包文件挂载:将打好的jar包通过挂载到主机上
了解以上几点后,开始运行jenkins
docker run -d -u root -p 11000:8080 -p 11089:8089 -v /opt/repository/:/opt/repository/ -v /var/jenkins_home/:/var/jenkins_home/ -v /jenkins/project/:/jenkins/project/ 5907903170ad
通过docker ps -s查看正在运行的镜像
jenkins镜像已运行
接下来需要访问jenkins:http://localhost:11000
jenkins
稍等片刻。
根据提示寻找登录密码
cat /var/jenkins_home/secrets/initialAdminPassword
输入密码后,等待登录。
下载插件
选择 左边的install supported plugins下载插件,下载过程有点慢,请耐心等待。
插件下载完成后,完成用户信息,密码用登录的密码
在主机上将jdk与maven的目录复制到jenkins_home下
配置jenkins:
配置settings.xml与jdk和maven
配置完成后,需要再下载一个插件:Maven Integration
接下来开始配置项目了:
回到jenkins首先,create new job
配置git信息
配置打包信息与项目执行脚本
执行脚本:
#!/bin/bash -ile
project=jenkins.jar
pathName=springboot_jenkins
echo "拷贝文件"
rm -rf /jenkins/project/$project
cp /var/jenkins_home/workspace/$pathName/target/$project /jenkins/project/
echo "切换路径"
cd /jenkins/project/ pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
echo "杀死存在进程"
fi
BUILD_ID=dontKillMe
echo "执行"
nohup java -jar $project &
echo "启动成功!"
配置好之后,就开始构建项目了:
jenkins构建成功:
构建成功
现在访问项目:
http://ip:11089/test/a
项目运行成功
到此结束,以后只要把项目更新到git上,可以定时构建项目,也可以手动触发构建。
docker+jenkins实现持续集成的更多相关文章
- .NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)
通过前面三篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) .N ...
- ASP.NET Core + Docker +Jenkins 实现持续集成
1.新建一个ASP.NET Core MVC应用程序: 2.将其上传到git: 3.建立Jenkins任务 (1)选择"新建任务",输入任务名称,选择"自由风格项目&qu ...
- docker+jenkins 部署持续集成环境
1.使用docker container的方式安装jenkins [root@hadoop default]# docker pull jenkin 创建一个目录用于后边映射 [root@hadoop ...
- Docker 结合Jenkins 构建持续集成环境
Docker 结合Jenkins 构建持续集成环境 Jenkins : 一个开源的持续集成工具, 提供软件版本发布.自动测试等一系列流程及丰富的插件 Maven: 一个自动化构建工具, 通过一段描述 ...
- Docker 从入门到放弃(四)Docker+Jenkins_自动化持续集成
Windows 查看密码 $ cat /var/jenkins_home/secrets/initialAdminPassword 14e14c414f41481aa5955753d3f31f9f 自 ...
- 【iOS】Jenkins Gitlab持续集成打包平台搭建
Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...
- 使用jenkins构建持续集成平台
jenkins + Maven + svn/git + tomcat 的持续集成平台 项目管理流程: 需求分析----原型设计----开发代码----提交测试-----内部测试-----确认上线( ...
- 用MSBuild和Jenkins搭建持续集成环境(2)
http://www.infoq.com/cn/articles/MSBuild-2 作者 Mustafa Saeed Haji Ali ,译者 李剑 发布于 2012年10月23日 | 注意: ...
- jenkins jmeter持续集成批处理jmx脚本
这篇文章介绍jenkis jmeter的持续集成,利用jenkins定时任务去批处理执行jmeter的jmx脚本文件,并且生成测试报告 1:jmeter的安装这里我就不在赘述了,如有问题可参考我的jm ...
随机推荐
- ssh服务器终端乱码
在使用 iTerm2 ssh 连接远程服务器的终端时,终端中文显示乱码.但是本地使用却没有出现中文乱码的问题,在网络上寻找了一番发现应该是服务器字符集和本地 iTerm2 设置的字符集不一致导致的,于 ...
- ubuntu连接kinect v2
经过这个过程才悟到,有的时候不是方法不对,也不是问题解决的不对,只是因为配置问题,如果配置不对,自然会出现各种各样问题,不如一开始就确定配置.不过,如果不是经历了这个过程,我也不知道是因为我的配置问题 ...
- CSS3学习笔记(4)—上下滑动展开的按钮
最近写了一个动画,下面来看看我以前写的一个上下滑动展开的按钮效果: 这类的效果经常会在一些网站页面下载按钮处看到,当你鼠标悬浮在下载按钮时,会提醒你是否已注册,或者点击登录什么的小提示~~~~~ 一. ...
- Bestcoder round 18----B题(一元三次方程确定区间的最大值(包含极值比较))
Math Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- WebRTC GitHub repo developer's guide
WebRTC GitHub repo developer's guide https://github.com/LingyuCoder/SkyRTC-demo WebRTC GitHub repo ...
- codeforces 701C C. They Are Everywhere(尺取法)
题目链接: C. They Are Everywhere time limit per test 2 seconds memory limit per test 256 megabytes inp ...
- 记一次关于return的错误
有时候瞎JB程序,调一天东改西改,都发现不了错:到最后弄出来发现就是那样一个SB错误,真不知道该笑还是该哭. 这个if语句中的return,如果加了那么判断了if语句成立后,下面就不再执行了. ...
- MongoDB Oplog
Capped Collections MongoDB有一种特殊的Collection叫Capped collections,它的插入速度非常快,基本和磁盘的写入速度差不多,并且支持按照插入顺序高效的查 ...
- weex 安装过程中遇到的坑
安装 然后 注意: 在weex-toolkit1.0.8版本后添加了npm5规范的npm-shrinkwrap.json用于锁定包依赖,故npm版本<5的用户需要通过npm i npm@late ...
- Empire Strikes Back
题意: 给定$K$个数字,求最小的正整数$n$,使得$\prod_{i=1}^{K}{a_i !} | n!$ 解法: 注意到$$\sum_{p为质数}{1/p} = O(loglogn)$$, 这样 ...