本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
graal-maven-docker 是一个基于 debian:buster-slim 轻量级基础镜像,通过 sdkman 包管理器集成 GraalVM 和 Maven 的 Docker 镜像。该镜像旨在提供一站式 Java 开发与构建环境,尤其优化了 GraalVM 原生镜像(Native Image)的构建能力。
native-image 工具,实现 Java 应用的原生镜像编译| 功能特性 | 说明 |
|---|---|
| 轻量级基础 | 基于 debian:buster-slim,镜像体积小,启动速度快 |
| 版本管理 | 通过 sdkman 统一管理 GraalVM 和 Maven 版本,确保环境一致性 |
| 原生镜像支持 | 预装 GraalVM native-image 工具,可直接编译 Java 应用为原生可执行文件 |
| Maven 集成 | 内置 Maven 构建工具,支持标准 Maven 命令(如 mvn clean package) |
| 环境隔离 | 容器化环境避免本地依赖冲突,简化多版本开发场景 |
mvn 命令,统一团队构建环境native-image 工具将 Java 应用编译为原生二进制文件(提升启动速度、降低内存占用)从 Docker 镜像仓库拉取镜像(具体标签需参考镜像仓库说明,如指定 GraalVM/Maven 版本):
docker pull softinstigate/graal-maven-docker:latest
进入容器内交互式 shell,用于手动执行命令或调试:
docker run -it --rm softinstigate/graal-maven-docker /bin/bash
挂载本地项目目录至容器,运行 Maven 命令(如打包项目):
# 挂载当前目录到容器内 /app 路径,执行 mvn clean package docker run --rm \ -v "$(pwd)":/app \ # 挂载本地项目目录 -w /app \ # 设置工作目录为 /app softinstigate/graal-maven-docker \ mvn clean package # Maven 构建命令
通过 native-image 工具直接编译 JAR 包为原生可执行文件(需项目已打包为 JAR):
docker run --rm \ -v "$(pwd)":/app \ -w /app \ softinstigate/graal-maven-docker \ native-image -jar target/your-app.jar # 生成原生可执行文件 your-app
若项目中已集成 native-maven-plugin(GraalVM 官方 Maven 插件),可通过 Maven 命令触发原生镜像构建:
docker run --rm \ -v "$(pwd)":/app \ -w /app \ softinstigate/graal-maven-docker \ mvn package -Pnative # 激活 native 配置文件,执行原生构建
容器默认配置以下环境变量(可通过 -e 参数覆盖):
| 环境变量 | 说明 | 默认值(示例) |
|---|---|---|
GRAALVM_HOME | GraalVM 安装路径 | /root/.sdkman/candidates/java/current |
M2_HOME | Maven 安装路径 | /root/.sdkman/candidates/maven/current |
MAVEN_OPTS | Maven 运行时 JVM 参数 | -Xmx512m(可自定义,如 -Xmx1g) |
PATH | 系统路径,包含 GraalVM 和 Maven 可执行文件 | 包含 $GRAALVM_HOME/bin 和 $M2_HOME/bin |
挂载本地 Maven 配置文件(settings.xml)覆盖容器默认配置(如私服地址、镜像源):
docker run --rm \ -v "$(pwd)":/app \ -v "$HOME/.m2/settings.xml":/root/.m2/settings.xml \ # 挂载本地 settings.xml -w /app \ softinstigate/graal-maven-docker \ mvn clean package
容器默认以 root 用户运行,挂载本地目录时可能导致生成文件的权限为 root。可通过 --user 参数指定当前用户 ID 避免权限问题:
docker run --rm \ -u "$(id -u):$(id -g)" \ # 使用当前用户 ID 运行容器 -v "$(pwd)":/app \ -w /app \ softinstigate/graal-maven-docker \ mvn clean package
graalvm-22.3.1_maven-3.8.6)。libz、glibc),若提示依赖缺失,可在容器内通过 apt 安装(需 root 权限):
docker run -it --rm softinstigate/graal-maven-docker /bin/bash apt update && apt install -y zlib1g-dev # 示例:安装 zlib 开发库
--memory 和 --cpus 参数限制容器资源(如 --memory 4g --cpus 2)。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429