持续集成的概念我就不多说了,网上一大堆,今日主要讲讲怎么通过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实现持续集成的更多相关文章

  1. .NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)

    通过前面三篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) .N ...

  2. ASP.NET Core + Docker +Jenkins 实现持续集成

    1.新建一个ASP.NET Core MVC应用程序: 2.将其上传到git: 3.建立Jenkins任务 (1)选择"新建任务",输入任务名称,选择"自由风格项目&qu ...

  3. docker+jenkins 部署持续集成环境

    1.使用docker container的方式安装jenkins [root@hadoop default]# docker pull jenkin 创建一个目录用于后边映射 [root@hadoop ...

  4. Docker 结合Jenkins 构建持续集成环境

    Docker 结合Jenkins  构建持续集成环境 Jenkins : 一个开源的持续集成工具, 提供软件版本发布.自动测试等一系列流程及丰富的插件 Maven: 一个自动化构建工具, 通过一段描述 ...

  5. Docker 从入门到放弃(四)Docker+Jenkins_自动化持续集成

    Windows 查看密码 $ cat /var/jenkins_home/secrets/initialAdminPassword 14e14c414f41481aa5955753d3f31f9f 自 ...

  6. 【iOS】Jenkins Gitlab持续集成打包平台搭建

    Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...

  7. 使用jenkins构建持续集成平台

    jenkins +   Maven + svn/git + tomcat 的持续集成平台 项目管理流程: 需求分析----原型设计----开发代码----提交测试-----内部测试-----确认上线( ...

  8. 用MSBuild和Jenkins搭建持续集成环境(2)

    http://www.infoq.com/cn/articles/MSBuild-2   作者 Mustafa Saeed Haji Ali ,译者 李剑 发布于 2012年10月23日 | 注意:  ...

  9. jenkins jmeter持续集成批处理jmx脚本

    这篇文章介绍jenkis jmeter的持续集成,利用jenkins定时任务去批处理执行jmeter的jmx脚本文件,并且生成测试报告 1:jmeter的安装这里我就不在赘述了,如有问题可参考我的jm ...

随机推荐

  1. ReentrantLock(重入锁)简单源码分析

    1.ReentrantLock是基于AQS实现的一种重入锁. 2.先介绍下公平锁/非公平锁 公平锁 公平锁是指多个线程按照申请锁的顺序来获取锁. 非公平锁 非公平锁是指多个线程获取锁的顺序并不是按照申 ...

  2. ElasticSearch(十五) _search api 分页搜索及deep paging性能问题

    1.分页搜索 语法: size,from GET /_search?size=10 GET /_search?size=10&from=0 GET /_search?size=10&f ...

  3. ssh服务配置文件---sshd_config详解

     关于 SSH Server 的整体设定,包含使用的 port 啦,以及使用的密码演算方式 Port 22 # SSH 预设使用 22 这个 port,您也可以使用多的 port !  # 亦即重复使 ...

  4. Hadoop安全

    kerberos-hadoop配置常见问题汇总 注意事项 常见问题如下(其中前面两点最多): 各目录属主组属性修改. 对于hadoop,需要改为yarn:hadoop/mapred:hdoop/hdf ...

  5. poj2513 Colored Sticks —— 字典树 + 并查集 + 欧拉回路

    题目链接:http://poj.org/problem?id=2513 题解:通过这题了解了字典树.用字典树存储颜色,并给颜色编上序号.这题为典型的欧拉回路问题:将每种颜色当成一个点.首先通过并查集判 ...

  6. complex brain network

    Organization, development and function of complex brain networks The Brain as a Complex System: Usin ...

  7. pypi指定下载源

    pip install -i http://pypi.douban.com/simple/ scipy==0.19.0

  8. [ZJOI 2013] K大数查询

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3110 [算法] 整体二分 + 线段树 时间复杂度 : O(NlogN ^ 2) [代 ...

  9. ubuntu 16.04 安装 Matlab R2016b后启动出现的问题

    (1)报以下错误: License checkout failed.License Manager Error -95MATLAB is unable to connect to the licens ...

  10. easy_install 和 pip

    原文章:http://blog.csdn.net/xsj_blog/article/details/52037609 easy_install 和 pip的介绍: easy_install和pip都是 ...