Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Jenkins+Docker 一键自动化部署 SpringBoot 项目

Jenkins+Docker 一键自动化部署 SpringBoot 项目

作者头像
芋道源码
发布于 2022-08-29 04:05:36
发布于 2022-08-29 04:05:36
82510
代码可运行
举报
文章被收录于专栏:芋道源码1024芋道源码1024
运行总次数:0
代码可运行

点击上方“芋道源码”,选择“设为星标

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

来源:blog.csdn.net/zqqiang0307/

article/details/120458586


本文章实现最简单全面的Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走坑路。

环境:centos7+git(gitee)

简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运行。

一、安装docker

docker安装社区版本CE

1.确保 yum 包更新到最新。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum update

2.卸载旧版本(如果安装过旧版本的话)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum remove docker  docker-common docker-selinux docker-engine

3.安装需要的软件包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install -y yum-utils device-mapper-persistent-data lvm2

4.设置yum源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

5.安装docker

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
yum install <自己的版本>  # 例如:sudo yum install docker-ce-17.12.0.ce

6.启动和开机启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start docker
systemctl enable docker

7.验证安装是否成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker version

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

二、安装Jenkins

Jenkins中文官网:

https://www.jenkins.io/zh/

1.安装Jenkins

docker 安装一切都是那么简单,注意检查8080是否已经占用!如果占用修改端口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run --name jenkins -u root --rm -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean

如果没改端口号的话

安装完成后访问地址-> http://{部署Jenkins所在服务IP}:8080

此处会有几分钟的等待时间。

2.初始化Jenkins
2.1 解锁Jenkins
  • 进入Jenkins容器docker exec -it {Jenkins容器名} bash
  • 例如 docker exec -it jenkins bash
  • 查看密码:cat /var/lib/jenkins/secrets/initialAdminPassword
  • 复制密码到输入框里面
2.2 安装插件

选择第一个:安装推荐的插件

2.3 创建管理员用户

此账户一定要记住哦

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn/video/

三、系统配置

1. 安装需要插件

进入【首页】–【系统管理】–【插件管理】–【可选插件】

搜索以下需要安装的插件,点击安装即可。

  • 安装Maven Integration
  • 安装Publish Over SSH(如果不需要远程推送,不用安装)
  • 如果使用Gitee 码云,安装插件Gitee(Git自带不用安装)
2. 配置Maven

进入【首页】–【系统管理】–【全局配置】,拉到最下面maven–maven安装

四、创建任务

1. 新建任务

点击【新建任务】,输入任务名称,点击构建一个自由风格的软件项目

2. 源码管理

点击【源码管理】–【Git】,输入仓库地址,添加凭证,选择好凭证即可。

3.构建触发器

点击【构建触发器】–【构建】–【增加构建步骤】–【调用顶层Maven目标】–【填写配置】–【保存】

此处命令只是install,看是否能生成jar包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
clean install -Dmaven.test.skip=true
4. 保存

点击【保存】按钮即可

五、测试

该功能测试是否能正常打包

1. 构建

点击构建按钮

2.查看日志

点击正在构建的任务,或者点击任务名称,进入详情页面,查看控制台输出,看是否能成功打成jar包。

该处日志第一次可能下载依赖jar包失败,再次点击构建即可成功。

3. 查看项目位置
  1. cd /var/jenkins_home/workspace
  2. ll 即可查看是否存在

六、运行项目

因为我们项目和jenkins在同一台服务器,所以我们用shell脚本运行项目,原理既是通过dockerfile 打包镜像,然后docker运行即可。

1. Dockerfile

在springboot项目根目录新建一个名为Dockerfile的文件,注意没有后缀名,其内容如下:(大致就是使用jdk8,把jar包添加到docker然后运行prd配置文件。详细可以查看其他教程)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM jdk:8
VOLUME /tmp
ADD target/zx-order-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8888
ENTRYPOINT ["Bash","-DBash.security.egd=file:/dev/./urandom","-jar","/app.jar","--spring.profiles.active=prd"]
2. 修改jenkins任务配置

配置如下:

  • -t:指定新镜像名
  • .:表示Dockfile在当前路径
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /var/jenkins_home/workspace/zx-order-api
docker stop zx-order || true
docker rm zx-order || true
docker rmi zx-order || true
docker build -t zx-order .
docker run -d -p 8888:8888 --name zx-order zx-order:latest

备注:

  1. 我上图用了docker logs -f 是为了方便看日志,真实不要用,因为会一直等待日志,构建任务会失败
  2. || true 是如果命令执行失败也会继续实行,为了防止第一次没有该镜像报错
3. 保存

点击保存即可

4. 构建

查看jenkins控制台输出,输出如下,证明成功!

5. 验证
  1. docker ps 查看是否有自己的容器
  2. docker logs 自己的容器名 查看日志是否正确
  3. 浏览器访问项目试一试


欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、RedisMongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
文章有帮助的话,在看,转发吧。谢谢支持哟 (*^__^*
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 芋道源码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
为中国程序员打call
为中国程序员打call
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
首次揭秘:腾讯TDSQL分布式多级一致性数据库系统技术
作者:李海翔,腾讯TDSQL专家工程师 “在分布式背景下,怎么实现双一致性(事务一致性、分布式一致性),并提高分布式事务型集群的处理效率?”腾讯TDSQL数据库长期致力于基础研究创新,并持续获得关键技术突破。 2020年12月21日,第11届DTCC(中国数据库技术大会)大会上,腾讯TDSQL数据库专家工程师李海翔分享了数据库领域的核心技术——分布式事务处理技术的核心——多级一致性技术。该技术在遵循了ACID特性的同时,使得事务处理技术符合CAP原理,并在理论层面相较“严格可串行化”技术做了扩展,进一
腾讯技术工程官方号
2020/12/22
1K0
​国产数据库梳理
网上对这些数据库介绍有些误导,流传各种说法,比如:流传OB基于MySQL、GaussDB 200/300 和openGauss有啥区别,没办法谁让当前国产数据库太多...
donghy
2022/09/17
2.4K0
「分布式系统前沿技术」专题:存储之数据库篇
分布式系统专家,架构师,开源软件作者。PingCAP 联合创始人兼 CTO,知名开源项目 Codis / TiDB / TiKV 主要作者,曾就职于微软亚洲研究院,网易有道及豌豆荚。2015 年创业,成立 PingCAP,致力于下一代开源分布式数据库的研发工作,擅长分布式存储系统设计与实现,高并发后端架构设计。
玄姐谈AGI
2020/01/03
1.2K0
【CDAS 2017】数据库与技术实战分论坛:庞杂数据中的技术实战技巧
作者 CDA 数据分析师 前言 2017年7月29日,由CDA数据分析师主办,以“跨界互联 数据未来”为主题的CDAS 2017第四届中国数据分析师行业峰会在北京中国大饭店隆重举行。 7月29日当天,除了引人眼球的主会场以外,当天同步开放11个分论坛,我们将逐一推送每个分论坛的盛况,以及演讲嘉宾速记稿整理,给每一个CDA成员奉上干货。 CDAS 2017中国数据分析师行业峰会的下午数据库与技术实战分论坛中,来自去哪儿、润乾科技、宜信等七位专家与教授,分享了数据库与技术实战自己的心得体会。 大会
CDA数据分析师
2018/02/26
1K0
【CDAS 2017】数据库与技术实战分论坛:庞杂数据中的技术实战技巧
余军:分布式数据库在金融行业的创新实践
分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。余军讲师为你讲解分布式数据库在金融行业的创新实践。 余军 PingCAP 高级技术总监,金融行业首席架构师;开源软件的忠实爱好者,负责金融行业基于 TiDB 产品的解决方案、产品架构咨询和建设规划。主要工作经历:富麦信息科技有限公司 CTO ,中
企鹅号小编
2018/01/15
2K0
余军:分布式数据库在金融行业的创新实践
刘奇:数据库市场呈现多样化趋势,20% 传统数据库在未来两年会被替代
即使将范围从大数据缩小到数据库这个细分领域,PingCAP 依然是家非常特殊的公司,其产品 TiDB 是市面上为数不多面向 HTAP 场景的数据库。
PingCAP
2018/04/23
1.6K4
刘奇:数据库市场呈现多样化趋势,20% 传统数据库在未来两年会被替代
聊聊主流的分布式数据库
单体数据库时代,随着系统交易量的不断上升,数据库读写性能出现了严重下降。我们可以借助分库分表中间件,比如mycat、shardingjdbc来实现分库分表,缓解单库的读写性能。但是分库分表中间件并不支持事务,如果要保证数据一致性,就需要借助于分布式事务中间件,比如阿里巴巴的seata。后来分布式数据库逐渐成为解决数据一致性的选择,目前分布式数据库产品已经比较成熟,支持ACID事务,本文就来聊一聊分布式数据库。
jinjunzhu
2021/01/05
1.8K0
聊聊主流的分布式数据库
【看点】腾讯数据库亮相NDBC
2017年金秋十月,中国计算机学会(CCF)数据库专委会的数据库年会,The 34th National Database Conference(NDBC 2017),国内最大的数据库学术会议,在美丽的西子湖畔浙江大学开幕了。恰逢中国数据库40周年纪念庆典,大会汇聚了全国数据处理技术领域的科研、教学、工程实现等精英,如罗晓沛,施伯乐,王珊,李建中,周立柱、唐常杰等老前辈纷纷参会。数据库专委会主任杜小勇教授主持大会。NDBC情况参看:http://www.cs.zju.edu.cn/ndbc2017/
TEG云端专业号
2018/03/15
1.3K2
【看点】腾讯数据库亮相NDBC
云原生数据库设计新思路
本文作者为 PingCAP 联合创始人兼 CTO 黄东旭,将分享分布式数据库的发展趋势以及云原生数据库设计的新思路。
深度学习与Python
2021/01/21
1.4K0
腾讯基于全时态数据库技术的数据闪回
作者简介:李海翔,网名“那海蓝蓝”,腾讯金融云数据库技术专家。中国人民大学信息学院工程硕士企业导师。著有《数据库事务处理的艺术:事务管理和并发访问控制》、《数据库查询优化器的艺术:原理解析与SQL性能优化》,广受好评。
腾讯技术工程官方号
2018/11/16
11.8K0
从TDSQL,看分布式数据库的技术之美
导语 | 每一个时间段总是一个新时代,新技术层出不穷使得数据库技术焕发新生。Spanner、CockroachDB、TDSQL等分布式数据库正是这个时代的弄潮儿。本文由腾讯云数据库专家工程师 李海翔在 Techo TVP开发者峰会「数据的冰与火之歌——从在线数据库技术,到海量数据分析技术」 的《分布式数据库的演进》演讲分享整理而成,带大家品味分布式数据库架构、前沿技术和TDSQL技术实践,感受分布式数据库的技术之美。 点击可观看精彩演讲视频 一、分布式数据库架构 我今天所分享的内容主要集中在数据库技
腾讯云开发者
2021/05/13
2K0
浅谈关系型数据库的演变
第一次知道数据库,是在大学时的数据库课程,那个时候的数据库特指关系型数据库。到后面工作后,才知道除了MySQL,Oralce这类关系数据库之外,还有NoSQL。 印象中,当时NoSQL由于优秀的性能和扩展性,发展迅速。但技术并非一成不变,二者可以相互借鉴。 待NoSQL潮水褪去,NewSQL出现,就像是是NoSQL和SQL在易用性和可扩展性上的平衡。
sean.liu
2022/09/07
6100
2022 年数据库发展总结
大家知道 2022 年我又创业了,加入以虎哥 Startup 的 Databend 这个公司担任联创,我也从传统的 OLTP 转战到 OLAP,今年也接触了更多大数据用户。趁着元旦假期整理一下思路,从数据角度和大家聊一下 2022 年数据库发展,这里首先声明这篇文章更多只代表个人观点,大家看看就好,有兴趣后面找机会再交流。
wubx
2023/03/08
6730
2022 年数据库发展总结
5G风起,未来数据库有哪些关键词?
在自己工作的领域中,发现快乐是我坚持做技术的动力。而技术域其实就是一个画圆的过程,当你发现你的圈圈画得越大,需要求知的东西也就越多。每天必须保持一种持续学习,和与技术死磕的精神才能促使我们不断前行。我们不断前行,时代也在不断变化和发展。本文由变化看发展,从移动通讯发展的历程同步透视数据库能力的变迁,进而预测5G时代将会给数据库带来的重大变革。
TVP官方团队
2019/08/30
3K0
5G风起,未来数据库有哪些关键词?
TDSQL参加全球数据库顶级盛会 VLDB 2018回顾
作者介绍:卞昊穹(hankbian):腾讯数据库TDSQL团队成员,高级工程师。中国人民大学博士,曾在SIGMOD、ICDE、CIKM等数据库相关领域顶级会议发表论文多篇。目前参与和主导多项TDSQL查询和存储优化的研发工作。
腾讯云数据库 TencentDB
2018/10/15
2K0
数据库简史(二),戏说中国数据库诸侯史
基本上每周五大部分可能都不是技术,码这样的文字,其实比技术文字要费劲的多,需要查询的信息很多并且还都不再一个维度上,如果有什么做的不周到,或惹到某些“大佬”谢谢您不杀之恩。
AustinDatabases
2019/11/26
1K0
数据库简史(二),戏说中国数据库诸侯史
NDBC | 腾讯TDSQL提出三个“数据库之问”,数据库技术未来重点在哪?
李海翔,网名“那海蓝蓝”,腾讯金融云数据库技术专家。中国人民大学信息学院工程硕士企业导师。著有《数据库事务处理的艺术:事务管理和并发访问控制》、《数据库查询优化器的艺术:原理解析与SQL性能优化》、《大数据管理》。
分布式数据库TDSQL
2019/10/17
1.3K0
NDBC | 腾讯TDSQL提出三个“数据库之问”,数据库技术未来重点在哪?
带你遨游银河系的 10 种分布式数据库
关系型数据库指的是使用关系模型(二维表格模型)来组织数据的数据库,由二维表及其之间的联系所组成的一个数据组织。
悟空聊架构
2022/05/13
7750
带你遨游银河系的 10 种分布式数据库
对话李飞飞:云数据库战争已经进入下半场
李飞飞,现任阿里巴巴集团副总裁、高级研究员,阿里云智能数据库事业部总负责人。加入阿里巴巴之前为美国犹他大学计算机系终身教授。研究成果多次获得了IEEE ICDE、ACM SIGMOD最佳论文奖等重要学术奖项。
数据和云
2019/07/09
1.4K0
分布式关系数据库探索 - NewSQL 演化过程
回味过去,展望未来,开始分布式数据库探索之旅,首先了解历史,本文大致梳理一下数据库发展过程,从1970年到2018年,数据库的发展过程,仅供参考,交流和学习,感谢您阅读!
jinlin
2018/10/18
2.3K0
推荐阅读
相关推荐
首次揭秘:腾讯TDSQL分布式多级一致性数据库系统技术
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验