2024最新 Jenkins + Docker 实战教程(三) - 在Jenkins服务器上运行java项目
创始人
2025-01-20 18:07:45
0

在这里插入图片描述

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志
🎐 个人CSND主页——Micro麦可乐的博客
🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战
🌺《RabbitMQ》本专栏主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战
🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解
💕《Jenkins实战》专栏主要介绍Jenkins+Docker+Git+Maven的实战教程,让你快速掌握项目CI/CD,是2024年最新的实战教程
如果文章能够给大家带来一定的帮助!欢迎关注、评论互动~

Jenkins + Docker + Git + Maven 实战教程(三) - 在Jenkins服务器上运行java项目

  • 前言
  • 运行前准备
  • 构建运行容器
  • 验证执行
  • 自动化部署
  • 结语

前言

在上一章节中,我们介绍了Jenkins的相关配置,同时我们也是用了Github上的一个DEMO进行测试拉取构建,如果有小伙伴还没了解Jenkins相关配置的可以参考我上一篇教程:

2024最新 Jenkins + Docker + Git + Maven 实战教程(二) - Jenkins相关配置

今天我们继续来操作Jenkins,我们先由简入深,让DEMO代码运行在Jenkins服务器上。

运行前准备

首先我们回忆一下上一章节的内容,Jenkins拉取构建的Demo项目是生成在
/home/jenkins-data/workspace/hello-world/target 目录下,且在最初安装Jenkins已经配置了数据卷,即宿主机可访问到Jenkins构建的Demo项目,我们需要只需要准备一个专门运行Demo项目的Docker容器,在构建完成的jar包目录下创建Dockerfile文件生成镜像,最后运行Demo项目的Docker容器,具体流程如下:
在这里插入图片描述

有细心的小伙伴可能发现了,如果在上一章节中直接在Jenkins容器安装了JDK,是可以直接java -jar运行demo项目的,这里博主是采用新建运行容器的方式来运行。

构建运行容器

构建Dockerfile文件,博主这里放在jar包相同目录 /home/jenkins-data/workspace/hello-world/target 下,我们首先构建Dockerfile

#进入目录 cd /home/jenkins-data/workspace/hello-world/target vim Dockerfile 

Dockerfile内容如下

FROM openjdk:11 # 设置工作目录 WORKDIR /app # 将宿主机的目录挂载到容器的/app目录 VOLUME /app # 复制.jar文件到工作目录 COPY my-app-1.0-SNAPSHOT.jar /app/my-app.jar # 设置容器启动时执行的命令 CMD ["java", "-jar", "my-app.jar"] 

构建并运行Docker镜像:

#构建镜像 docker build -t my-app . #运行容器 docker run -d --name my-app-demo my-app 

验证执行

在官方提供的demo中,实际上仅控制台输出了 Hello World! 字符串,我们使用 docker run -it 指令直接查看输出
在这里插入图片描述
输出结果
在这里插入图片描述
至此我们已经测试了Jenkins服务器上启动新的容器运行Demo项目

自动化部署

有小伙伴可能发现了,哎~这哪里是自动化部署啊,每一步都需要自行去操作,不用着急博主只是为了演示项目部署运行的流程,接来下我们看看如何使用Jenkins实现自动化

由于我们是使用容器部署Jenkins,在上述流程中,我们发现需要在Jenkins容器中执行Docker生成镜像工作,需要让我们的Jenkins容器可以操作宿主机的Docker

将宿主机的Docker引擎挂载到Jenkins容器上,即Jenkins容器调用宿主机的Docker
如果你之前没挂载可以先停止并删除Jenkins容器

# 追加挂载宿主机的Docker引擎 docker run \   -u root \   -d \   -p 8080:8080 \   -p 50000:50000 \   -v /home/jenkins-data:/var/jenkins_home \   -v /var/run/docker.sock:/var/run/docker.sock \   -v /usr/bin/docker:/usr/bin/docker \   --name jenkins-docker \   jenkins/jenkins:lts-jdk17 

Jenkins后台进入hello-world项目,在左侧找到配置
在这里插入图片描述
上一章节我们已经配置了Git Repository URL
在这里插入图片描述

找到 Post Steps 选项,,选择仅构建成功执行
在这里插入图片描述
设置我们的sell命令,需要判断对应容器是否存在,存在则需要停止并删除

# 默认操作在Jenkins工作目录下的项目名目录 即 workspace/hello-world/target cd target #构建镜像 docker build -t my-app . # 使用docker ps和grep来检查容器是否存在 if docker ps -a | grep "my-app-demo" > /dev/null; then     echo "容器存在"     #容器存在则停止并删除容器     docker stop my-app-demo     docker rm my-app-demo fi #运行容器 docker run -d --name my-app-demo my-app 

查看控制台输出
在这里插入图片描述

进入宿主机查看项目书否正常输出了Hello World!

docker logs my-app-demo Hello World! 

结语

本章节使用jenkins实现在同一个宿主机中拉取构建,并将项目运行到宿主机另外一个jdk11容器中,由简入深小伙伴们可以跟着博主的教程一步步进行操作,如果过程中遇到什么问题欢迎留言!

本章节因为使用了官方的demo项目进行拉取构建,Dockerfile是自己在宿主机中编写的,下一章节我们将构建一个简单的SprongBoot项目并在项目中配置Dockerfile,从创建SprongBoot项目 -> 上传github ->自动化部署进行演练。

下一章节:2024最新 Jenkins + Docker 实战教程(四) - 编写自己的Springboot项目实现自动化部署


在这里插入图片描述

相关内容

热门资讯

透视代打“wepoker脚本下... 透视代打“wepoker脚本下载”wepoker辅助器激活码(透视)买脚本靠谱(都是真的有挂)亲,关...
透视苹果版!德普之星私人局辅助... 透视苹果版!德普之星私人局辅助器(透视)私人局透视(有挂揭秘)一、德普之星私人局辅助器软件透明挂的定...
透视好友“聚星ai辅助工具收费... 透视好友“聚星ai辅助工具收费多少”newpoker脚本(透视)必胜教程(确实是真的有挂)1、点击下...
透视ai!aapoker透视怎... 透视ai!aapoker透视怎么用(透视)aapoker能控制牌吗,力荐教程(有挂技巧)1、aapo...
透视安装“wepoker辅助器... 透视安装“wepoker辅助器安装包定制”wepoker轻量版有透视吗(透视)透视功能下载(果然有挂...
透视科技!德普软件(透视)私人... 透视科技!德普软件(透视)私人局辅助免费(有挂技巧)运德普软件辅助工具,进入游戏界面。进入德普软件辅...
透视规律“xpoker透视辅助... 透视规律“xpoker透视辅助”拱趴大菠萝自动计算机器人(透视)必胜教程(一直有挂);1、拱趴大菠萝...
透视存在!aapoker辅助器... 透视存在!aapoker辅助器是真的吗(透视)aapoker透视插件,科技教程(有挂解密);进入游戏...
透视辅助“wepoker怎么增... 透视辅助“wepoker怎么增加运气”wepoker私局辅助(透视)辅助是真的(本来是有挂)1、完成...
透视攻略!德普之星有透视辅助吗... 透视攻略!德普之星有透视辅助吗(透视)透视(有挂详情)1、玩家可以在德普之星有透视辅助吗软件透明挂俱...