Java Jenkins+Docker部署jar包

使用 Jenkins 和 Docker 部署 Java 应用(通常是 JAR 包)是一种现代化的 DevOps 实践,它能够显著提高开发和运维的效率。以下是详细的步骤和注意事项,帮助你实现这一目标。

准备工作

1. 安装必要的软件

  • Jenkins:确保你已经在服务器上安装了 Jenkins。可以使用 Docker 安装 Jenkins,命令如下:
bash 复制代码
docker pull jenkins/jenkins:lts
docker run -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins:lts

访问 ​​http://<服务器IP>:8080​​ 完成 Jenkins 的初始设置。

  • Docker:确保服务器上已经安装了 Docker。安装命令如下:
lua 复制代码
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
  • Java JDK:确保服务器上安装了 Java JDK。可以通过以下命令安装:

    sudo yum install java-1.8.0-openjdk

  • Maven:确保服务器上安装了 Maven。可以通过以下命令安装:

    sudo yum install maven

2. 配置 Jenkins

  • 安装插件 :在 Jenkins 中安装必要的插件,如 ​Git Plugin​、​Maven Integration Plugin​、​Publish Over SSH Plugin​ 和 ​Docker Pipeline Plugin​。
  • 全局工具配置:在 Jenkins 的全局工具配置中添加 JDK、Maven 和 Git 的路径。

创建 Jenkins Job

1. 创建一个新的 Jenkins Job

  • 登录 Jenkins 控制台,点击 ​新建任务​,输入任务名称,选择 ​自由风格的项目​,点击 ​确定​。

2. 配置源码管理

  • 在 ​源码管理​ 部分选择 ​Git​,输入 Git 仓库的 URL 和凭证。

3. 配置构建触发器

  • 可以选择 ​轮询 SCM​ 或 ​GitHub hook trigger for GITScm polling​ 来触发构建。

4. 配置构建环境

  • 在 ​构建环境​ 部分可以选择 ​Delete workspace before build starts​ 以确保每次构建都在干净的环境中进行。

5. 配置构建步骤

  • 在 ​构建​ 部分添加 ​Invoke top-level Maven targets​,输入 ​clean package​ 作为目标。
  • 如果需要跳过测试,可以添加 ​-Dmaven.test.skip=true​ 参数。

6. 配置构建后操作

  • 在 ​构建后操作​ 部分添加 ​Add build step​,选择 ​Execute shell​,编写 Shell 脚本来构建 Docker 镜像并运行容器。示例脚本如下:
perl 复制代码
# 构建 Docker 镜像
docker build -t my-java-app .

# 删除旧容器(如果存在)
docker rm -f my-java-app || true

# 运行新容器
docker run -d --name my-java-app -p 8080:8080 my-java-app

编写 Dockerfile

在 Java 项目的根目录下创建一个名为 ​​Dockerfile​​ 的文件,内容如下:

bash 复制代码
# 使用官方的 OpenJDK 镜像作为基础镜像
FROM openjdk:8-jdk-alpine

# 设置工作目录
WORKDIR /app

# 将构建好的 JAR 包复制到容器中
COPY target/my-java-app.jar /app/

# 暴露应用端口
EXPOSE 8080

# 启动应用
ENTRYPOINT ["java", "-jar", "my-java-app.jar"]

测试和验证

  1. 构建项目 :在 Jenkins 控制台中点击 ​立即构建​,等待构建完成。
  2. 验证部署 :构建完成后,访问 ​http://<服务器IP>:8080​ 验证应用是否正常运行。

注意事项

  • 安全性:确保 Jenkins 和 Docker 的安全配置,避免未授权访问。
  • 日志管理:配置 Docker 日志驱动,以便更好地管理和查看容器日志。
  • 资源管理:合理分配 Docker 容器的资源限制,避免资源争用。
  • 备份和恢复:定期备份 Jenkins 数据和 Docker 镜像,确保数据安全。

通过以上步骤,你可以使用 Jenkins 和 Docker 实现 Java 应用的自动化构建和部署,提高开发和运维的效率。

相关推荐
做个文艺程序员2 分钟前
MQ第10篇:RAG与消息队列实战:Java构建AI客服系统的检索增强生成完整架构
人工智能·架构·rocketmq·向量数据库·rag·ai客服·spring ai
我的xiaodoujiao4 分钟前
Django 基础知识详细图文教程 16-Django 内置Admin认证系统
后端·python·django
程序员鱼皮6 分钟前
Personal Agent 是什么?为什么大厂都抢着做?连 DeepSeek Bot 都来了。。
前端·后端·ai编程
starzy19907 分钟前
Flink 任务调度 Graph 源码深度剖析:从 StreamGraph 到 ExecutionGraph 的三层演进
java·大数据·flink
Eyfcom9 分钟前
〖实战〗快运系统 Oracle 性能优化:从“能用”到“扛住双11”的 Java + Spring Boot 实战
java·oracle·性能优化·快递管理系统
geovindu14 分钟前
rust: Chain of Responsibility Pattern
开发语言·后端·设计模式·rust·责任链模式·行为模式
m0_5873830014 分钟前
碰碰好评卡功能落地全流程实战指南 附核心逻辑与常见问题解决方案
java·前端·数据库·后端·struts·需求分析
cheems952714 分钟前
从统一响应到 Swagger:一篇讲清微服务接口文档设计未命名
java·微服务·架构·状态模式
dd聊技术15 分钟前
给检索改动装一盏红绿灯:评测门禁怎么建、怎么用
人工智能·后端
KylinLab16 分钟前
拆解四家子智能体运行时:OpenCode / Claude Code / CodeBuddy / TRAE 源码级对照
架构