用于 Jenkins-Agent 中的 PodTemplate 使用,内置 Java Maven 的应用。
1.3K
dragonzw/builder-maven 是**dragonzw/builder-base 镜像的 Maven 专项版本**,其核心作用是封装一个 定制化的 Maven 构建基础环境,提供预安装的 Maven 工具、Java 依赖管理与系统优化,用于作为“父镜像”快速构建 Java 应用(尤其是 Maven 项目)的容器镜像(如编译 Java 源码、管理 Maven 依赖、打包 WAR/JAR 文件)。
builder-base 镜像”信息)在之前的对话中,dragonzw/builder-base 镜像的定义明确提到:
maven/gradle)、JDK(Java 运行时)、git(拉取代码)、Maven 包管理(mvn 命令)等;Dockerfile 继承 builder-base,用 mvn clean package 编译 Maven 项目)。而**builder-maven** 是**builder-base 的细分**,将“Maven 构建”的能力独立封装,更聚焦 Java/Maven 开发者的需求。
dragonzw/builder-maven 的具体功能(推断)基于“builder-base 的 Java/Maven 相关配置”和“Maven 构建的常规需求”,builder-maven 镜像应包含以下核心功能:
maven-3.9);mvn 命令)、Maven 仓库配置(如预设置国内镜像源 https://maven.aliyun.com/repository/public,加速依赖下载)。jdk-17);git,用于拉取 Maven 项目源码);curl/wget 下载依赖、jq 处理 JSON、tar 压缩产物)。alpine:3.19、ubuntu:22.04),体积精简(通常 < 300MB);TZ=Asia/Shanghai)、语言编码(LANG=C.UTF-8);/root/.m2 存储 Maven 本地仓库、/app 存储源码);maven 用户),提升安全性。dragonzw/builder-maven 的核心价值是简化 Maven 项目的容器化构建流程,适用于以下场景:
通过 Dockerfile 继承 builder-maven,直接编译 Maven 项目并生成镜像(无需重复安装 Maven/JDK):
# 继承 builder-maven 镜像(假设标签为 maven-3.9-jdk-17)
FROM dragonzw/builder-maven:maven-3.9-jdk-17
# 复制 Maven 项目源码到容器
COPY ./src /app
# 切换到源码目录
WORKDIR /app
# 用预安装的 Maven 编译(生成 WAR/JAR 文件)
RUN mvn clean package -DskipTests
# 设置容器启动命令(运行 JAR 文件)
CMD ["java", "-jar", "/app/target/app.jar"]
团队内所有成员使用同一 builder-maven 镜像,避免因本地 Maven 版本、JDK 版本、依赖差异导致的“构建不一致”问题。
在 Jenkins、GitLab CI 等流水线中,用 builder-maven 作为构建节点镜像,快速完成 Maven 项目的编译、测试、打包(如生成 JAR 文件后,用 b2i-sample 镜像容器化)。
与 builder-base 的关系:
builder-maven 是 builder-base 的Maven 专项子集,功能更聚焦(仅保留 Maven/Java 相关工具),体积更小。若需构建多语言应用(如同时包含 Go 和 Java),仍可使用 builder-base。
非官方镜像的风险:
该镜像由个人(dragonzw)维护,稳定性、安全性不如官方 Maven 镜像(如 maven:3.9-alpine、openjdk:17-jdk-slim)。生产环境建议优先使用官方 Maven 镜像或基于官方镜像自行定制(如添加团队常用依赖)。
版本兼容性:
镜像标签(Tag)通常对应Maven 版本(如 maven-3.9)、JDK 版本(如 jdk-17)和基础系统版本(如 alpine-3.19),需确认与目标应用的兼容性(如 Maven 项目是否支持该版本)。
dragonzw/builder-maven 是一个定制化的 Maven 构建基础镜像,核心价值是将“Maven 工具+Java 依赖管理+系统优化”打包为标准化环境,作为“父镜像”快速构建 Java(Maven)应用镜像。其定位适合Java/Maven 开发者简化构建流程、团队统一构建环境、CI/CD 流水线集成,是 builder-base 镜像的 Maven 专项延伸。
Content type
Image
Digest
sha256:b93a2fa56…
Size
867.2 MB
Last updated
6 months ago
docker pull dragonzw/builder-maven:v3.3.0-jdk11-podman