Jenkins容器化部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins容器化部署相关的知识,希望对你有一定的参考价值。

参考技术A

参数说明

Jenkins是一种主从架构,有一个master和多个slave,master负责提供界面、处理HTTP请求及管理构建环境,汇总构建结果;slave是一个在远程机器上运行的Java可执行文件,构建的执行则由Jenkins slave负责。(master也可以执行构建操作,默认executor数量为2个,表示能并行执行两个Job。)

• executor:执行器,是真正执行项目的单元。一个执行器可以被理解为一个单独的进程(事实上是线程)。在一个节点上可以运行多个执行器(添加节点的时候指定)。

• agent:代理,在概念上指的是相对于Jenkins master的一种角色,实际上是指运行在机器或容器中的一个程序,它会连接上Jenkins master,并执行Jenkins master分配给它的任务。

通过上面方法启动的容器,只要定时打包备份 /root/jenkins 目录就可以了。升级Jenkins版本时,直接使用该目录,使用新镜像重新启动容器就可以了。

通过 executors.groovy groovy脚本文件,重新打包镜像,可以修改executor的数量,如调整为5个。

Dockerfile

无法使用部署到容器插件从 jenkins 部署对 Tomcat 的战争

【中文标题】无法使用部署到容器插件从 jenkins 部署对 Tomcat 的战争【英文标题】:Unable to deploy war on tomcat from jenkins using Deploy to container Plugin 【发布时间】:2017-04-25 23:14:35 【问题描述】:

成功构建到tomcat 7后,我正在学习面部并尝试配置jenkins并部署war。但是,我能够成功创建和构建工作。我正在使用 Deploy to container Plugin 将我的 war 文件部署到 tomcat 位置,但它部署在用户文件夹中 c 驱动器的 .m2 文件夹中。

作业的控制台输出

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 56.433 s
[INFO] Finished at: 2016-12-10T22:13:16+05:30
[INFO] Final Memory: 17M/49M
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving E:\myProj\test\trunk\web\pom.xml to com.test/web/0.0.1-SNAPSHOT/web-0.0.1-SNAPSHOT.pom
[JENKINS] Archiving E:\myProj\test\trunk\web\target\web.war to com.er4u/web/0.0.1-SNAPSHOT/web-0.0.1-SNAPSHOT.war
channel stopped
Finished: SUCCESS

tomcat configuration in job

【问题讨论】:

【参考方案1】:

这是我的日志:

[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 28.148s
[INFO] Finished at: Wed Jan 18 09:38:59 EST 2017
[INFO] Final Memory: 20M/192M
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving /var/lib/jenkins/jobs/kft-activiti-demo/workspace/pom.xml to me.kafeitu.demo/kft-activiti-demo/v1/kft-activiti-demo-v1.pom
[JENKINS] Archiving /var/lib/jenkins/jobs/kft-activiti-demo/workspace/target/kft-activiti-demo.war to me.kafeitu.demo/kft-activiti-demo/v1/kft-activiti-demo-v1.war
channel stopped
Deploying /var/lib/jenkins/jobs/kft-activiti-demo/workspace/target/kft-activiti-demo.war to container Tomcat 7.x Remote
  Redeploying [/var/lib/jenkins/jobs/kft-activiti-demo/workspace/target/kft-activiti-demo.war]
  Undeploying [/var/lib/jenkins/jobs/kft-activiti-demo/workspace/target/kft-activiti-demo.war]
  Deploying [/var/lib/jenkins/jobs/kft-activiti-demo/workspace/target/kft-activiti-demo.war]
Finished: SUCCESS

【讨论】:

我可以使用这个插件部署我的战争,但如果战争已经部署在服务器上,大多数时候它无法部署战争。你能帮我解决这个问题吗? :)

以上是关于Jenkins容器化部署的主要内容,如果未能解决你的问题,请参考以下文章

Django应用的容器化部署

[ci]jenkins-slave-ssh docker容器化

Docker+jenkins自动化部署SpringCloud微服务项目

linux12Devops -->10Jenkins流水线容器化+Harbor私有仓库

前端应用容器化部署 Docker

使用k8s容器化布署jenkins