获得jenkins 镜像
搜索jenkins相关镜像
docker search jenkins

可以看到官方提供的镜像有OFFICAIAL标识
通常也可以到docker store搜到所需镜像的使用说明 我是链接
下载链接
docker pull jenkins
启动镜像
docker run -d -p 8080:8080 -p 50000:50000 -v /jenkins:/var/jenkins_home jenkins
-d的意思是后台运行
-v + 本地路径:容器路径 :示例为将容器的/var/jenkins_home路径挂载到本地/jenkins 这么做的原因是/var/jenkins_home 为jenkins的运行文件目录,保存运行相关数据,如果不挂载到本地,当前镜像进程结束后不属于镜像的文件就会丢失。可以理解为镜像本身是不变的,每次运行都是从头开始。
登录并初始化
浏览器通过地址:8080端口访问
提示输入秘钥

由于是后台启动镜像,日志没有输出到终端内,可以从启动日志中查询秘钥:
1:查询当前运行镜像的ID
查询状态命令:
docker ps

2:查询日志命令
docker logs -f -t --since="2017-05-31" ${id}
根据上一步查询到的ID:输入命令
docker logs -f -t --since="2017-05-31" 2833f00d6755
可以秘钥

填入秘钥后提供初始化选项,我选择install suggested plugin

接着会进行一系列安装,完毕会要求你填写管理员账户信息

填写后即可启动:


安装全局工具


JDK

git

maven

点击save保存变更
安装maven项目插件



安装通过SSH发布插件
用于打包结束后把jar包远程发布到运行服务器用(注:这只是运行应用的一种办法)
在插件管理中安装该插件:

在系统设置里配置远程服务器

配置远程连接属性:
name:后续指定连接服务器
hostname:远程服务器ip
username:用户名
passphrase:密码

配置完后记得保存。
创建一个maven 项目


配置代码来源:
示例选择git
首先填写用户名密码


然后填写url

构建配置

运行工程jar包
这里使用的通过SSH方式连接一个服务器,然后运行一个脚本 :

脚本很简单:大致为查询已经运行的服务进程号,如有则删除,然后运行打包出来的这个jar包。spring boot集成了web容器,所以可以直接通过jar命令启动
kill -9 `ps aux | grep com.progen.Application | grep -v grep | awk '{print $2}'`
cp /dev/null nohup.out
nohup /jenkins/tools/hudson.model.JDK/bin/java -jar /jenkins/workspace/test/target/progen-0.0.1.jar com.progen.Application &
exit 0
其实是本地运行,就“偷懒”使用jenkin安装的那个( /jenkins/tools/hudson.model.JDK/bin/java),而/jenkins/workspace/test/target/为打包的路径,所以在source files 和Remote directory没有配置,既没有吧本地的jar包传输到远程目录。

仅配置运行脚本

这里运行的时候需要加上nohup ,不然运行结束后jenkins没有判断为成功结束,构建结果会显示为超时而不是成功。

网友评论