核心是让 jenkins 容器稳定运行并驱动 java 项目 ci/cd 全流程:需挂载 /var/run/docker.sock、配置 root 权限或 docker 组、集成 maven 与 dockerfile、使用 jenkinsfile 声明式流水线,并安装 git、maven integration、docker pipeline 等插件。

Java 项目用 Docker 部署 Jenkins 实现 CI/CD,核心不是“Java 怎么用 Docker”,而是让 Jenkins(基于 Java 运行)在 Docker 中稳定工作,并驱动整个 Java 项目的构建、镜像打包与发布流程。关键在于环境协同、插件配合和流水线设计。
确保 Jenkins 容器能调用宿主机 Docker
这是最易卡住的一步。Jenkins 容器默认无法访问宿主机的 Docker 引擎,必须显式挂载 socket 文件:
- 启动 Jenkins 容器时,加上 -v /var/run/docker.sock:/var/run/docker.sock 参数;
- 同时建议加 -u root 或将 Jenkins 用户加入 docker 组(容器内需提前配置),否则执行
docker build会报权限拒绝; - 验证方式:进入容器执行
docker ps,能列出宿主机正在运行的容器即成功。
为 Java 项目准备可构建的上下文
Jenkins 要构建 Java 项目,需要两个基础支撑:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
-
Maven 工具链:在 Jenkins 系统配置中添加 Maven(推荐使用“自动安装”功能,指定 Apache Maven 3.9+),或通过挂载方式把本地 Maven 目录映射进容器(如
-v /opt/maven:/usr/local/maven); - Dockerfile:项目根目录下必须有 Dockerfile,例如面向 Spring Boot 的典型写法:
VOLUME /tmp
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Xms256m","-Xmx512m","-jar","/app.jar"]
配置 Jenkins 流水线完成自动化发布
推荐使用 Jenkinsfile 声明式流水线,放在项目仓库根目录。一次提交即可触发完整流程:
- 拉取代码 → 执行
mvn clean package -Dmaven.test.skip=true生成 jar; - 用
sh 'docker build -t myapp:${BUILD_ID} .'构建镜像; - 可选:推送到私有 Registry(需提前配置登录凭证);
- 停旧容器、启新容器:
sh 'docker rm -f myapp || true && docker run -d --name myapp -p 8080:8080 myapp:${BUILD_ID}'。
必需安装的核心插件
在 Jenkins 插件管理中确认已启用:
- Git plugin(拉代码);
- Maven Integration plugin(支持 pom.xml 构建);
-
Docker Pipeline(原生支持
docker.withRegistry等语法); - Publish Over SSH(若需部署到非本机服务器,配合远程 Docker 环境)。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










