docker:(5)利用docker -v 和 Publish over SSH插件实现war包自动部署到docker
在 docker:(3)docker容器挂载宿主主机目录 中介绍了运行docker时的一个重要命令 -v
sudo docker run -p : --name tomcat_xiao_volume -v /home/xiaochangwei/test:/usr/local/tomcat/webapps xiaochangwei/tomcat:v1
将容器内部目录和宿主主机目录进行关联,这样操作宿主主机关联目录时,就会同步关联操作了容器对应目录,
这在发布war包时尤其有用, 容器启动后就无需再关心了,只需要将需要更新的war包拷贝到关联的目录就可以了
本篇文章就是为了简化拷贝工作
docker:(4)利用WebHook实现持续集成 中实现了git提交代码触发jenkins自动打包并部署到远程tomcat中,这里讲怎么部署到docker中
首先已经得到war包了,下面要做的就是怎么把war包拷贝到docker容器关联的宿主主机对应目录
jenkins提供了插件Publish over SSH 官方介绍https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plugin
操作步骤:
1.安装插件 Publish over SSH
2.在系统管理-系统设置最后设置ssh server信息 如下:

解释下:
Passphrase : 主机的登录密码
Hostname : 主机的地址
Username :主机的登录账号
Remote Directory:根路径 (注意后续的路径都是相对这个路径来操作的,最好设置为 /)
配置好后,点击测试配置,显示成功后保存关闭
3. 在具体项目中勾选 Send files or execute commands over SSH after the build runs 并配置如下

解释下参数:
Name : 就是上一步配置的server名字,下拉选择
source File :就是war包路径 jenkins打包后再target目录下
prefix : 就是war包路径的前缀,去掉前缀后就是war包了
Remote directory: 需要放到远程服务器的目录,
需要注意的是,这里是相对于第二步中Remote Directory的路径, 比如第2步我设置的是/root 如果这里我这只为 /package 那么对应的目标路径就是/root/packages
这里问了更好的区分,我使用了时间戳,这就需要勾选上 Remote directory is a date format,并且非时间格式的地方都需要用引号包含起来
比如我这里设置的是 '/packages/'yyyyMMddHHmmss-${BUILD_NUMBER} 最后的${BUILD_NUMBER}是jenkins变量,就是打包次数,和last buid对应
Exec command: 是需要执行的命令,可以设置任何linx可以执行的命令或者shell脚本
设置好后保存,打包测试:

根据控制台输出,可以看出设置的shell命令也执行了,而且提示文件也上传到配置的服务器上了(后的137错误是因为我的阿里云服务器内存太小,自动部署到tomcat上失败了,这个与本次讲的无关,请忽略)
注意此次打包号为 #27
到服务器上对应目录看下上传情况

证明war包已经上传到了对应的目录了
这样 就可以设置对应的目录和docker容器关联后,实现war包的自动更新发布和备份了,这里加了时间戳适合于备份,单纯的发布就不要加时间戳了
docker:(5)利用docker -v 和 Publish over SSH插件实现war包自动部署到docker的更多相关文章
- 使用Docker构建持续集成与自动部署的Docker集群
为什么使用Docker " 从我个人使用的角度讲的话 部署来的更方便 只要构建过一次环境 推送到镜像仓库 迁移起来也是分分钟的事情 虚拟化让集群的管理和控制部署都更方便 hub.docke ...
- Publish over SSH插件安装
1 Publish over SSH插件安装 打开Jenkins的“系统管理>管理插件”,选择“可选插件”,在输入框中输入“Publish over SSH”进行搜索,如果搜索不到可以在“已安装 ...
- Jenkins系列-Jenkins通过Publish over SSH插件实现远程部署
配置ssh免秘钥登录 安装Publish over SSH插件 插件使用官网:https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plug ...
- 使用Publish Over SSH插件实现远程自动部署
背景: 现场的部署环境开放外网环境困难,只有一台机器能够开发外网,应对该情况,所有的补丁文件需要直接在master机器上面生成,然后命令移动到其他的服务器上面去. 这里使用到了jenkins的Publ ...
- Jenkins通过Publish over SSH插件实现远程部署
Jenkins通过Publish over SSH插件实现远程部署 步凑一.配置ssh免秘钥登录 部署详情地址:http://www.cnblogs.com/Dev0ps/p/8259099.html ...
- Jenkins中Publish Over SSH插件使用
Publish Over SSH插件安装 进入插件管理安装插件,我这里已经安装过了所以在installed里面,没安装过去available里面搜索. 系统设置中配置Publish Over SSH ...
- 从零开始通过idea插件将一个spring boot项目部署到docker容器里运行
实操:将一个spring boot项目部署到docker容器里运行 实验需要的环境: 腾讯云+Ubuntu 16.04 x64+idea+插件docker integration+daocloud 第 ...
- Jenkins高级应用——Publish Over SSH插件
在之前的篇幅中有介绍,利用jenkins结合shell脚本完成远程部署的功能,点击Jenkins结合shell+expect脚本完成线上环境自动构建部署即可查看. 上述方式需要引入expect脚本,安 ...
- jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第五话):总结以及build.xml文件
前面基本上把整个配置过程都完整地串起来了,包括可能遇到的难点,按照那个套路应该可以配置好自动打包发布的功能.简单总结下我的学习过程,以及遇到问题是怎样解决的. 准备一个项目源码 刚开始在github和 ...
随机推荐
- jmeter入门系列文章二 版本号介绍
转载时请标注源自:http://blog.csdn.net/musen518 jmeter版本号公布频率一般为1年,每年会有一个版本号升级 截止2015年底,最新版本号为2.13,最新最全的更新信息一 ...
- json与xml的比较
l 可读性: JSON和XML的可读性都很好,XML略占上风. l 可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的. l 编码难度 XML有丰富的编码工具 ...
- Swiper单页网站简单案例(全屏网页)
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
- 在Docker中运行asp.net core 跨平台应用程序
概述 Docker已经热了有一两年了,而且我相信这不是一个昙花一现的技术,而是一个将深远影响我们日后开发和部署.运营应用系统的一种创新(很多人将其作为devops的一种非常重要的基石).学习docke ...
- Shell编程实践之批量安装JDK
实验环境 只有两台机子,一台虚拟机192.168.1.200,另外一台物理机192.168.1.201. 目标 执行一个shell脚本,给这两台机子自动安装jdk. 实验步骤 1.自动设置ssh免密码 ...
- Github开源项目(企业信息化基础平台)
JEEPlatform 一款企业信息化开发基础平台,可以用于快速构建企业后台管理系统,集成了OA(办公自动化).SCM(供应链系统).ERP(企业资源管理系统).CMS(内容管理系统).CRM(客户关 ...
- web前端学习就这9个阶段,你属于哪个阶段?
第一阶段:HTML+CSS: HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础:Js基础教程.js内置对象常用方法.常见DOM树操作大全.ECMAsc ...
- 【ANT】时间戳
属性 说明 举例 DSTAMP 设置为当前日期,默认格式:yyyymmdd 20170309 TSTAMP 设置为当前时间,默认格式:hhmm 2007 TODAY 设置为当前日期,带完整的月份 Ma ...
- iOS开发之Xcode常用调试技巧总结
转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...
- The Movie db (TMDB)的API申请
在共享API TMDB中申请时,一只报错Application summary please elaborate on how you plan to use our API,我是用汉字描述的,开始以 ...