
Quarkus构建镜像是Quarkus官方提供的专用Docker镜像,旨在简化Quarkus应用的构建流程。作为多阶段构建中的"构建阶段"镜像,它集成了完整的Quarkus构建工具链(含JDK、Maven/Gradle等依赖),可直接用于编译、打包Quarkus应用,并为后续"运行阶段"生成优化的运行时镜像(如JVM模式或原生模式镜像)提供基础。
dockerfile# 构建阶段:使用Quarkus构建镜像编译应用 FROM quay.io/quarkus/ubi-quarkus-maven:22.3-java17 AS build WORKDIR /workspace # 复制依赖文件并缓存 COPY pom.xml . COPY .mvn .mvn # 下载依赖(利用缓存层优化) RUN ./mvnw dependency:go-offline -B # 复制源代码并构建 COPY src ./src RUN ./mvnw package -DskipTests -Dquarkus.package.type=uber-jar # 运行阶段:使用轻量级运行时镜像 FROM quay.io/quarkus/ubi-quarkus-jre17:22.3 WORKDIR /workspace # 从构建阶段复制构建产物 COPY --from=build /workspace/target/quarkus-app/ /workspace/ EXPOSE 8080 # 启动应用 CMD ["java", "-jar", "quarkus-run.jar"]
dockerfile# 构建阶段:生成原生可执行文件 FROM quay.io/quarkus/ubi-quarkus-maven:22.3-java17 AS build WORKDIR /workspace COPY pom.xml . COPY src ./src # 使用native profile构建原生镜像 RUN ./mvnw package -DskipTests -Pnative -Dquarkus.native.container-build=true # 运行阶段:使用极简基础镜像 FROM registry.access.redhat.com/ubi8/ubi-minimal:8.7 WORKDIR /workspace # 复制原生可执行文件 COPY --from=build /workspace/target/*-runner /workspace/application # 赋予执行权限 RUN chmod +x /workspace/application EXPOSE 8080 # 启动原生应用 ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"]
构建镜像支持通过环境变量调整构建行为,常用变量如下:
| 环境变量名 | 说明 | 默认值 | 示例值 |
|---|---|---|---|
MAVEN_OPTS | Maven构建参数 | -Xmx1024m | -Xmx2048m -Dmaven.test.skip=true |
GRADLE_OPTS | Gradle构建参数 | -Xmx1024m | -Xmx2048m |
QUARKUS_BUILD_OPTS | Quarkus构建额外参数 | 空 | -Dquarkus.profile=prod |
USER_ID | 构建用户ID(避免权限问题) | 1001 | 1000 |
GROUP_ID | 构建用户组ID | 0 | 1000 |
为提升重复构建效率,建议在构建命令中添加缓存卷挂载(适用于本地开发):
bashdocker run -v $(pwd):/workspace -v ~/.m2:/home/quarkus/.m2 quay.io/quarkus/ubi-quarkus-maven:22.3-java17 ./mvnw package
Quarkus构建镜像通过标签区分JDK版本和基础镜像类型,常用标签格式:
ubi-quarkus-maven:<version>-java<jdk-version>:基于UBI的Maven构建镜像ubi-quarkus-gradle:<version>-java<jdk-version>:基于UBI的Gradle构建镜像centos-quarkus-maven:<version>-java<jdk-version>:基于CentOS的构建镜像(旧版本)推荐使用UBI(Universal Base Image)系列镜像,具有更小体积和更好的安全性。
A:检查网络连接,或通过-v ~/.m2:/home/quarkus/.m2挂载本地Maven仓库缓存。
A:通过环境变量传递:docker run -e QUARKUS_BUILD_OPTS="-Dquarkus.profile=prod" ...
A:确保-Pnative参数已添加,且宿主机内存≥4GB(原生构建需较高内存)。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务