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

在这里插入图片描述

😄 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项目实现自动化部署


在这里插入图片描述

  • 38
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
回答: 在使用JenkinsDocker的过程中,需要进行一些配置和安装步骤。首先,由于在Jenkins机器上Docker使用root用户运行的,而Jenkins使用普通用户jenkins运行的,所以需要配置jenkins用户可以使用docker命令。可以通过修改sudoers文件来实现,具体命令如下:\[1\] ``` \[root@osb30 ~\]# visudo jenkins ALL=(root) NOPASSWD: /usr/bin/docker ``` 其次,需要新建一个Jenkins用户,并进行相关配置。可以通过以下命令来创建Jenkins用户并设置密码: ``` \[root@osb30 ~\]# groupadd jenkins \[root@osb30 ~\]# useradd -g jenkins jenkins \[root@osb30 ~\]# echo "wisedu" | passwd --stdin jenkins &> /dev/null ``` 接下来,可以使用Docker安装Jenkins。首先拉取Jenkins镜像: ``` docker pull jenkins/jenkins ``` 然后为Jenkins建立挂载目录并设置权限: ``` mkdir /home/nc/software/jenkins/ sudo chown -R 1000:1000 /home/nc/software/jenkins/ ``` 最后,运行Jenkins镜像并进行初始化: ``` docker run -d -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/nc/software/jenkins:/var/jenkins_home jenkins/jenkins ``` 其中,-d表示以守护线程运行,即后台运行;-p表示Docker容器和端口的映射,后面的是容器的端口,前面的是宿主机的端口;-v表示数据卷的映射,后面是容器内的文件夹地址,前面为宿主机的地址。最后,可以通过浏览器打开http://ip:8080进行初始化。\[3\] #### 引用[.reference_title] - *1* *2* [Jenkins+Docker持续集成](https://blog.csdn.net/weixin_30892987/article/details/98066958)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [springboot+jenkins+docker自动化部署](https://blog.csdn.net/qq_34838643/article/details/103863359)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Micro麦可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值