jenkins和docker实现自动化构建部署 ( https://blog.csdn.net/bingoxubin/article/details/78720976)
-
1.应用场景
- 程序员开发应用,开发后需要提交svn,然后从svn拉取代码,进行构建,发布到tomcat中,发布,然后看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能把这些工作自动化呢,只需要程序员更新代码到svn,然后自动的构建,发布,呈现效果,当然是可以的,通过jenkins和docker来实现。
-
2.操作步骤
-
1. 概述
- 开发者的工作大概流程是,eclipse编写代码,提交代码到svn,然后进行编译,打包,测试,部署,发布。
- 这其中很多重复的工作,影响开发人员的情绪,应当让开发者只重视代码阶段,后面的内容不用去理会,只要编写代码,提交代码,然后就能打开页面看到效果,那是最好的。
- 这就需要自动化构建,jenkins就是很好的自动化构建工具。
-
2. 自动化流程
image- 具体流程如下:
- 1.编写代码,修改代码
- 2.提交代码到svn
- 3.Jenkins自动检测到svn代码更新,从svn拉取最新代码
- 4.Jenkins自动编译
- 5.Jenkins自动打成tomcat下能运行的war包
- 6.Jenkins自动上传war包到docker宿主机目录
- 7.Jenkins自动构建web容器镜像,包含项目demo
- 8.Jenkins自动启动镜像,变成容器,映射端口
- 9.最后就有项目运行的界面提供了
- 具体流程如下:
-
-
3. 环境准备
- 3.1 jenkins
-
Jenkins简单点说就是一个war包。一个自动化服务,提供各种插件集成。
-
jenkins下载地址 ( http://mirrors.jenkins-ci.org/war/latest/jenkins.war)
image -
Jenkins部署有两种方法(可以装到windows或者linux,实验中以windows的方式一为例):
-
Docker 安装 Jenkins ( 此步骤可以忽略)
-
docker run --name myjenkins -p 8081:8080 -p 50000:50000 --env JAVA_OPTS=-Dhudson.footerURL=http://mycompany.comjenkins
image
-
-
Jenkins是用Java语言开发的系统,首先要确定服务器上已经安装JDK或者JRE。
-
方法1:
- 直接运行java –jar jenkins.war(注意jenkins.war得是绝对路径,例如下图所示),在浏览器中输入
- http://localhost:8080即可。
-
方式2(本例是采用这种方式安装)
-
把jenkins的war包拷贝到tomcat的webapps目录下,启动tomcat,访问地址:http://ip:8080/jenkins
image image image image image image image
-
-
- 3.1 jenkins
-
配置Jenkins
-
首先需要进入jenkins主界面,安装必须要的插件。
- 进入插件页面,选择可选插件,搜索ssh,安装SSH plugin和Publish Over SSH插件
-
a. 配置邮件提醒 ( 详细配置邮件提醒: https://blog.csdn.net/fullbug/article/details/53024562)
-
1、设置管理员邮箱
image -
2、配置EMAIL通知
image image
-
-
b. 配置Publish over SSH。这里配置后才能在配置目标容器环境时,选择到构建完成后发布到的目标容器。
image
-
-
IDEA中配置SVN ( 安装SVN时,勾选安装commond line client,不然就没有svn.exe,需要另外下载个)
image image image image image -
解决IDEA commit后,一直svn performing vcs refresh...
image image -
svn 命令行方式提交代码
image image- svn commit 报错
-
svn: E205007: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F)options
-
解决: 提示comment编码问题,加上参数 -m即可解决
-
svn ci src\main\java\com\ukefu\webim\web\handler\apps\internet\IMController.java -m "禁止灌水!"
image
-
-
比较2个版本的区别
image image
-
- svn commit 报错
网友评论