Jenkins + Docker 一键自动化部署 Spring Boot 项目,步骤齐全,少走坑路!

点击关注公众号,Java干货及时送达e2d47112c8c1882d46bd2fceb72207f7.png

71de7641875b215642b695a890c8b837.png 国内最强微服务框架,没有之一!

cd7bd1033fd15948af8b3b01cfcde2ae.png 几乎覆盖 Spring Boot 所有操作!


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

环境:centos7+git(gitee)

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

推荐一个开源免费的 Spring Boot 实战项目:

https://github.com/javastacks/spring-boot-best-practice

安装docker

docker 安装社区版本CE

确保 yum 包更新到最新。
yum update
卸载旧版本(如果安装过旧版本的话)
yum remove docker  docker-common docker-selinux docker-engine
安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker
yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
yum install <自己的版本>  # 例如:sudo yum install docker-ce-17.12.0.ce
启动和开机启动
systemctl start docker
systemctl enable docker
验证安装是否成功
docker version

安装Jenkins

Jenkins中文官网:https://www.jenkins.io/zh/

安装Jenkins

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

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

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

另外,如果你近期准备面试跳槽,建议在Java面试库小程序在线刷题,涵盖 2000+ 道 Java 面试题,几乎覆盖了所有主流技术面试题。

初始化 Jenkins

详情见官网教程->https://www.jenkins.io

解锁 Jenkins

进入Jenkins容器:docker exec -it {Jenkins容器名} bash

例如 docker exec -it jenkins bash

查看密码:cat /var/lib/jenkins/secrets/initialAdminPassword

复制密码到输入框里面

bb205889d817dd7b9fcf6bf786da8622.png
安装插件

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

3da993b36184c592f172a560030c3a39.png
创建管理员用户

此账户一定要记住哦

系统配置

安装需要插件

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

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

46c42753894b7c9988f54f8de896df68.png
  • 安装Maven Integration

  • 安装Publish Over SSH(如果不需要远程推送,不用安装)

  • 如果使用Gitee 码云,安装插件Gitee(Git自带不用安装)

配置Maven

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

4fc1e5e44071df8c0013cf899934a866.png

创建任务

新建任务

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

8eafd38c4ff11481cec55288998cfde8.png
源码管理

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

cc31c9b482668cf631335bd30c2dcdda.png
构建触发器

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

da5543b2957b10c84493e06d58d974fb.png

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

clean install -Dmaven.test.skip=true
94434c6f0993a02b60a252f680514192.png
保存

点击【保存】按钮即可

测试

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

构建

点击构建按钮d67d409221db9c9edc74aeed1cad4980.png

查看日志

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

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

4ed8141945dd3580e0e46c9e90069044.png
查看项目位置
cd /var/jenkins_home/workspace

ll命令即可查看是否存在

运行项目

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

Dockerfile

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

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"]
修改jenkins任务配置
3f8a5dc991a925baa7b316a28d663691.png

配置如下:

acf6b95eb4fd2367fef06be1167e882f.png
-t:指定新镜像名
.:表示Dockfile在当前路径
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

备注:

  • 我上图用了docker logs -f 是为了方便看日志,真实不要用,因为会一直等待日志,构建任务会失败

  • 加|| true 是如果命令执行失败也会继续实行,为了防止第一次没有该镜像报错

保存

点击保存即可

构建
ba84fd3f7ed5644405ef5e59ffaa8645.png

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

验证
docker ps 查看是否有自己的容器
docker logs 自己的容器名 查看日志是否正确

浏览器访问项目试一试

版权声明:本文为CSDN博主「这把躺赢」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/zqqiang0307/article/details/120458586


最后推荐下我的《Spring Boot 核心技术课》,几乎覆盖 Spring Boot 所有核心知识点,一次付费,永久学习…

感兴趣的扫码联系订阅学习:

1ff9f7a46518018c5768b27514e01a86.png

End

cb7a030b45a1ddde2d681be42c972e88.png 国内最强微服务框架,没有之一!

b7e73ed362b813d9422db30a79e41f78.png 几乎涵盖 Spring Boot 所有操作!

31e2ba96c295899d300d86c48031e514.png 用上 ChatGPT 啦,强的离谱!

617cebc093fa3d52dc3e422deabf7744.png ChatGPT 视频课程来了,完全免费!

b08613beeda8458a201d737da76435c1.png Java 20 正式发布,超神了。。

👇 点击阅读原文,玩转 ChatGPT!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/61145.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis-Plus 可视化代码生成器来啦,让你的开发效率大大提速!!

点击关注公众号&#xff0c;Java干货及时送达 学习 Spring Cloud 微服务的正确姿势&#xff01; 用上 ChatGPT 啦&#xff0c;强的离谱&#xff01; 终于把 Spring Boot 3.0 写成书了&#xff01; 前言 在基于Mybatis的开发模式中&#xff0c;很多开发者还会选择Mybatis-Plus来…

农民工与学生为楼癫狂 富人加速撤离

首先是各级政府不约而同开始鼓励农民工进城买房。然后&#xff0c;国家信息中心宏观经济形势课题组的报告&#xff0c;甚至把这件事提高到了生死攸关的高度&#xff1a;农民工市民化&#xff0c;是消化住宅库存的关键环节和成败所在。特别想请教国家信息中心宏观经济形势课题组…

计算机成下一个土木了??

来源&#xff1a;知乎 最近互联网裁员&#xff0c;有网友热议&#xff1a;2022年大规模裁员后&#xff0c;计算机专业会不会成为下一个土木&#xff1f; 前些年抓住了互联网行业的红利期&#xff0c;进入大厂的员工&#xff0c;基本可以实现在一线城市买房扎根。 但反观现在&am…

读书笔记-大颠狂(非同寻常的大众幻想与群众性癫狂)

本书内容概要 《财富》杂志鼎力推荐的75本商务必读书之一&#xff0c;《金融时报》评选的史上最佳10部金融作品之一。本书在金融史上的地位不言自喻&#xff0c;在世界各地流传了近200年依然畅销不衰。它不单是一本金融投资领域的超级经典&#xff0c;也是一部有关人类愚行的编…

让人癫狂的24号,请你慢点离开

那一年&#xff0c;你18岁&#xff0c;初进联盟&#xff0c;受世人怀疑&#xff0c;拿下扣篮冠军  那一年&#xff0c;你19岁&#xff0c;史上ALL STAR首发&#xff0c;惊艳世人  那一年&#xff0c;你20岁&#xff0c;坐稳球队先发&#xff0c;场均19&#xff0c;成为一股…

IntelliJ IDEA 2019,从入门到癫狂,图文教程

点击上方“小哈学Java”&#xff0c;选择“星标” 回复“666”&#xff0c;领取100G独家整理的学习资料哟~ 来源&#xff1a;http://t.cn/Eiv6CTU 如果说IntelliJ IDEA是一款现代化智能开发工具的话&#xff0c;Eclipse则称得上是石器时代的东西了。 其实笔者也是一枚从Eclipse…

IntelliJ IDEA 2019从入门到癫狂 图文教程!

点击上方“方志朋”&#xff0c;选择“设为星标” 回复”666“获取新整理的面试资料 作者&#xff1a;yizhiwazi 来源&#xff1a;www.jianshu.com/p/9c65b7613c30 前言&#xff1a;IntelliJ IDEA 如果说IntelliJ IDEA是一款现代化智能开发工具的话&#xff0c;Eclipse则称得上…

新世纪的群众性幻想与癫狂3

又泡沫的地方&#xff0c;就有财富的地方 自我意淫的人造牛市 进入2015年以来&#xff0c;静默已久的A股股价就出现了一个令人意想不到的暴涨。到2015年6月中旬&#xff0c;上证综指已较2014年7月上涨了152%、较年初上涨了59.7%&#xff0c;中小企业板、创业板较年初更是上涨了…

癫狂的dom——利用css3让dom动起来

不废话&#xff0c;先来看一下效果&#xff1a; 下面上代码&#xff1a; html部分&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title></title><link href"shake.css" …

IntelliJ IDEA 2019从入门到癫狂

前言&#xff1a;IntelliJ IDEA 如果说IntelliJ IDEA是一款现代化智能开发工具的话&#xff0c;Eclipse则称得上是石器时代的东西了。 其实笔者也是一枚从Eclipse转IDEA的探索者&#xff0c;随着近期的不断开发实践和调试&#xff0c;逐步体会到这款智能IDE带来的巨大开发便利…

新世纪的群众性幻想与癫狂

历史不会改变&#xff0c;只会一次次的重复 经过了千万年的进化&#xff0c;人类已经站在了食物链的顶端。人类的进化并不是肢体或皮毛上演化所带来的结果&#xff0c;而是人类具有智慧&#xff0c;知道使用大脑去思考判断。但是&#xff0c;人毕竟还是动物&#xff0c;内心所保…

IntelliJ IDEA 2019从入门到癫狂 图文教程

点击上方“朱小厮的博客”&#xff0c;选择“设为星标” 做积极的人&#xff0c;而不是积极废人 来源&#xff1a;http://t.cn/Eiv6CTU 前言&#xff1a;IntelliJ IDEA 如果说IntelliJ IDEA是一款现代化智能开发工具的话&#xff0c;Eclipse则称得上是石器时代的东西了。 其实笔…

CXO是什么?医药板块龙头都有哪些?

制药行业是当今最复杂、监管最严格的行业之一。新药的开发&#xff0c;从最初的发现到最终的批准&#xff0c;是一个漫长而昂贵的过程&#xff0c;需要许多不同专业人士的专业知识。而制药公司面临的主要挑战之一是平衡创新需求与成本效率需求&#xff0c;面对这个挑战&#xf…

医疗器械上市公司

内在上交所和深交所上市的公司中&#xff0c;主营业务为医疗器械的一共有35家&#xff0c;在港交所上市的有8家&#xff0c;共计43家。 图片来自“123RF图库” 医疗器械、药品和医疗服务并称为医疗行业的三驾马车。国家政策的支持&#xff0c;市场容量的扩张&#xff0c;无疑…

全网盘点有哪些免费开源提高生产力的 GitHub 项目火了?

全网盘点有哪些免费开源提高生产力的 GitHub 项目火了&#xff1f; 开箱即用的地理信息系统 「地理信息系统&#xff08;Geographic Information System&#xff0c;简称 GIS&#xff09;」是一种用于采集、存储、处理、分析、管理和展示地理信息的计算机系统。 简单来说&…

科普:生成式 AI 简介

What I cannot create, I do not understand. - Richard Feynman 前言 你左拥右抱着 Stable Diffusion 和 MidJourney 创造美轮美奂的图片。 你熟练使用着 ChatGPT 和 LLaMa 创造辞致雅赡的文字。 你来回切换着 MuseNet 和 MuseGAN 创造高山流水的音乐。 毋庸置疑&#xff0c;人…

生成式 AI 简介

What I cannot create, I do not understand. - Richard Feynman 前言 你左拥右抱着 Stable Diffusion 和 MidJourney 创造美轮美奂的图片。 你熟练使用着 ChatGPT 和 LLaMa 创造辞致雅赡的文字。 你来回切换着 MuseNet 和 MuseGAN 创造高山流水的音乐。 毋庸置疑&#xff0c;人…

如何编写AI艺术提示[示例+模板]

有没有觉得制作 AI 艺术提示需要秘密和魔法&#xff1f;当您的所有提示都失败时&#xff0c;所有这些创意专业人士如何在Midjourney和DALL-E等工具中创建令人惊叹的&#xff0c;令人兴奋的视觉效果&#xff1f; 现实情况是&#xff0c;创建很酷的AI艺术提示并不像看起来那么复…

2天300+作品,Midjourney将彻底颠覆食品包装设计!

Midjourney设计的“世界最可爱的零食包装 原本是为了提高效率让短视频团队去研究AI&#xff0c;结果我自己却陷进了Midjourney&#xff08;AI绘画工具&#xff09;&#xff0c;连玩一周。可以说&#xff0c;Midjourney给我在图片领域带来的震撼&#xff0c;以及它将对设计领域的…

stable-diffusion 安装和使用

安装&#xff1a; 在电脑上安装环境依赖 继续安装 把下面这两个文件复制到stable-diffusion-webui 下面 点击A启动器&#xff0c;启动stable-diffusion&#xff0c;然后点击~运行中~ 然后看到弹出控制台后&#xff0c;等待~ 第一次会等待时间会稍微久一点&#xff08;这个是单机…