docker+jenkins部署java项目
时间: 2025-07-04 19:01:03 浏览: 8
### 使用 Docker 和 Jenkins 部署 Java 项目的流程和方法
#### 准备环境
在开始之前,确保宿主机上已经安装了 Docker 和 Docker Compose,并且配置好了 Maven、JDK 等开发工具链。同时,建议将 Jenkins 的持久化数据目录提前规划好,以便于后续维护 [^1]。
#### 启动 Jenkins 容器
可以使用 `docker-compose` 文件来快速启动 Jenkins 容器,以下是一个示例的 `docker-compose.yml` 文件内容:
```yaml
version: '3'
volumes:
jenkins-data:
jenkins-jdk17:
services:
jenkins:
image: jenkins/jenkins:latest-jdk17
privileged: true
volumes:
- jenkins-data:/var/jenkins_home
- jenkins-jdk17:/opt/java/openjdk
- /export/maven/apache-maven-3.9.5:/usr/local/maven
- /export/nvm/nvm-0.39.5/versions/node/v14.21.3:/usr/local/nodejs
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
ports:
- "8080:8080"
- "50000:50000"
container_name: jenkins
mem_limit: 800m
restart: "always"
```
此配置文件定义了一个 Jenkins 服务,它会挂载本地的 Maven、Node.js 和 Docker 相关路径到容器内部,使得 Jenkins 可以访问这些工具进行项目构建和部署 [^1]。
#### 配置 Jenkins
启动 Jenkins 后,通过浏览器访问 `http://<host-ip>:8080` 进入 Jenkins 的初始设置界面。按照提示完成初始化配置,包括安装推荐插件、创建管理员账户等步骤。
接着,进入 **Manage Jenkins > Global Tool Configuration** 页面,配置全局工具的位置,例如 Maven、JDK 和 Node.js 的安装路径。由于前面已经通过 Docker 挂载了这些工具的路径,因此可以直接指定相应的路径 [^2]。
#### 创建 Jenkins 任务
创建一个新的自由风格项目(Freestyle project),配置如下关键选项:
1. **源码管理**:选择 Git,输入项目的仓库地址和凭证。
2. **构建触发器**:可以选择定时轮询 SCM 或者通过 Webhook 触发构建。
3. **构建环境**:勾选 “Provide Node & npm bin/ folder to PATH”,如果需要前端构建的话。
4. **构建步骤**:添加执行 Shell 脚本或者调用 Maven 构建目标。例如,对于一个标准的 Spring Boot 应用程序,可以使用 `mvn clean package` 命令来编译和打包应用 [^3]。
#### 编写构建脚本
在 Jenkins 任务的构建步骤中,可以编写一段 Shell 脚本来处理项目的构建和部署过程。假设项目被打包成 JAR 文件,可以通过下面的脚本来停止旧的服务实例并启动新的服务实例:
```bash
#!/bin/bash
# 停止正在运行的应用
APP_NAME=myapp.jar
PID=$(ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
kill -9 $PID
fi
# 移动到工作空间目录并运行新版本的应用
cd /var/jenkins_home/workspace/myproject
nohup java -jar target/*.jar &
```
#### 自动化部署
为了实现更高级的自动化部署,可以在 Jenkins 中集成更多的插件和服务,比如 Kubernetes 插件用于向 Kubernetes 集群部署应用,或者使用 Ansible 进行配置管理和部署任务 [^3]。
阅读全文
相关推荐

















