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 ...
随机推荐
- vmware虚拟机centos网络配置错误,执行/etc/init.d/network start 或 restart 提示Device eth0 has different MAC address than expected, ignoring
vmware虚拟机centos网络配置错误,执行/etc/init.d/network start 或 restart 提示Device eth0 has different MAC address ...
- ubuntu 16.04安装Jenkins
快速安装: sudo wget -q -O - http://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - sudo ...
- 人生苦短之Python列表拷贝
列表拷贝的几种方法: 1.工厂函数 b=list(a) >>> a=[1,2,3,4] >>> b=list(a) >>> b [1, 2, ...
- FindBugs规则整理
http://blog.csdn.net/jdsjlzx/article/details/21472253/ 配置FindBugs和常见FindBugs错误 http://blog.csdn.net/ ...
- FFmpeg big changes. ffmpeg 接口的一些改变
Big changes have been made from FFmpeg 0.5.1… Refer to http://cekirdek.pardus.org.tr/~ismail/ffmpeg- ...
- java版的下雪,大家圣诞快乐
1. [代码][Java]代码 package com.yk.tools.game; import java.applet.AudioClip;import java.awt.Dimension ...
- python学习笔记:第四天( 字符串)
Python3 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字 ...
- 【Spring MVC】 - @ModelAttribute使用
@ModelAttribute一个具有如下三个作用: ①绑定请求参数到命令对象:放在功能处理方法的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑 定流程,而且自动暴露为模型数据用于视图页面 ...
- 自定义带图标input样式
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- css绘制三角形
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...