springboot+Jenkins+docker-compose自动部署项目实践
DevOps思想
一个开发、测试、运维的整个过程的思想。

plan:需求、计划
code:编码
build:构建
test: 测试
release:发布版本
deploy:部署
operate:项目运转
monitor:监控

Jenkins主要做自动部署的工作。
准备一个简单的springboot项目,并用码云管理代码



编写dockerFile

FROM:使用java:8作为基础镜像
COPY:拷贝所有当前目录jar文件后缀的包到镜像容器的/hello-jenkins.jar
CMD:指定springboot启动的端口
EXPOSE:容器开放8080端口
VOLUME:容器内存放日志文件的路径,需要挂载到服务器
编写docker-compose

version:Compose file format,与docker引擎的版本对应查阅:https://docs.docker.com/compose/compose-file/compose-versioning/
services:需要构建的镜像列表
hello-jenkins: 镜像名字
build:构建命令,直接点就是构建当前目录的Dockerfile文件(docker build -f Dockerfile -t hello -jenkins )
image: 镜像名
volumes:挂载目录,服务器目录:容器内目录
ports:端口映射,服务器端口:容器内端口、
尝试执行
将docker-compose、DockerFile、jar包放入服务器目录上。
执行
docker-compose up -d # -d后台执行 --build 重新构建

访问成功:

码云新建一个WebHook

注意url要以用户名@密码的形式说明jenkin的用户
配置Jenkins
jenkin安装gitee插件

新建一个maven项目任务

配置好git地址和账号密码

配置webhooks
使用webhooks能让提交代码的时候就触发构建项目。
jenkin任务选择码云的webhook

选择[ci-build] 指令触发构建可以在提交的描述信息包含 [ci-build],才触发构建。
配置build命令

配置build完后执行的命令

我的jenkins是war包安装的,构建后的包目录是 /root/.jenkins/workspace/hello-jenkins/target/hello-0.0.1-SNAPSHOT.jar
\cp命令是复制,且强制覆盖原来的文件。
验证
修改代码并提交

成功触发构建事件

刷新页面

更新成功!
springboot+Jenkins+docker-compose自动部署项目实践的更多相关文章
- Jenkins + maven + svn 自动部署项目
1.安装Jenkins sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins. ...
- 使用jenkins 插件自动部署项目至tomcat
前面使用maven.ant编译项目就不说,只说一下使用jenkins的插件自动部署项目 1.首先jenkins安装插件Deploy to container Plugin ,下载地址为:https:/ ...
- Jenkins+Docker+Git 自动化部署
Jenkins+Docker+Git 自动化部署图文教程 https://blog.csdn.net/qq_38252039/article/details/89791247 前言: 通过几天的学习和 ...
- Docker Compose 一键部署Nginx代理Tomcat集群
Docker Compose 一键部署Nginx代理Tomcat集群 目录结构 [root@localhost ~]# tree compose_nginx_tomcat/ compose_nginx ...
- Docker Compose 一键部署多节点爬虫程序
Docker Compose 一键部署多节点爬虫程序 目录结构 [root@localhost ~]# tree compose_crawler/ compose_crawler/ ├── cento ...
- dotnet跨平台 - 使用Nginx+Docker Compose运行.NETCore项目
参考文档: https://docs.docker.com/install/linux/docker-ce/centos/ http://www.dockerinfo.net/document htt ...
- Docker Compose 一键部署LNMP
Docker Compose 一键部署LNMP 目录结构 [root@localhost ~]# tree compose_lnmp/ compose_lnmp/ ├── docker-compose ...
- Eclipse自动部署项目到Tomcat的webapps下的有效方法
开发JavaEE项目,常用的工具有MyEclipse,Eclipse,netBeans等,我比较喜欢用Eclipse,因为相比MyEclipse体积小很多,响应速度也快,且足以满足需求,我喜欢简洁的编 ...
- Pycharm自动部署项目
Pycharm自动部署项目 大家好呀,又有几天不见各位了.断更了几天,给大家说声抱歉.清明节大家都挺忙的,有扫墓祭祖的,也有趁小长假去游玩的. 所以,在节后,更新也会照常进行,继续给大家分享本人的一些 ...
随机推荐
- 166个最常用的Linux命令,哪些你还不知道?
linux命令是对Linux系统进行管理的命令.对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心. 线上查 ...
- 美团在TIDB方面的实践
摘自-https://www.v2ex.com/t/508094 一.背景和现状 在美团,基于 MySQL 构建的传统关系型数据库服务已经难于支撑公司业务的爆发式增长,促使我们去探索更合理的数据存储方 ...
- 【老孟Flutter】Flutter 中与平台相关的生命周期
老孟导读:关于生命周期的文章共有2篇,一篇(此篇)是介绍 Flutter 中Stateful 组件的生命周期. 第二篇是 Flutter 中与平台相关的生命周期, 博客地址:http://laomen ...
- spark进行相同列的join时,只留下A与B关系,不要B与A
一.问题需求: 近期需要做一个商品集合的相关性计算,需要将所有商品进行两两组合笛卡尔积,但spark自带的笛卡尔积会造成过多重复,而且增加join量 假如商品集合里面有: aa aa bb b ...
- Hbase-cdh5.14.2与kylin集成异常
1.原先使用版本:apache-kylin-2.5.1-bin-hbase1x 原生版本 启动报错出现异常: Failed to find metadata store by url: kylin_m ...
- http ContentLength 为0 下载问题
如图 通过http 下载某个东西 , WebResponse response = request.GetResponse(); response 调试如图 ContentLength 为0 ...
- 并发编程--锁--Lock和Synchronized
说说对于 synchronized 关键字的了解? synchronized关键字解决的是多个线程之间访问资源的同步性: synchronized 关键字可以保证被它修饰的方法或者代码块在任意时刻只能 ...
- 使用BigDecimal舍小数取整数
项目需求说明: 解决WMS系统收货容差问题,例如:SKU的采购数量95件,容差是5,95+95*5/100=99.75,传WMS的数量是99,且容差传零. 参数说明: 其中ROUND_UP:向上取整, ...
- Laya 踩坑日记 ---A* 导航寻路
要做寻路,然后看了看laya 官方的例子,感觉看的一脸懵逼,早了半天的api 也没找到在哪有寻路的,最后一看代码,原来是用的github上的A星方案 https://github.com/bgrin ...
- 【Qt】实现程序重启的两种方法
Qt5/PyQt5 实现程序重启的两种方法 前言 最近在写一个开源项目,需要实现一个程序自动重启的功能.尝试了好几种方式,效果均不太理想. 一开始的实现思路是,记为思路一吧.大概就是写一些 shell ...