You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Render.com部署Quarkus应用?解决Docker构建失败问题

解决Render部署Quarkus应用时target目录不存在的问题

问题根源分析

你遇到的报错核心是Docker构建时找不到target/quarkus-app目录,原因有两个:

  1. 你使用的基础镜像registry.access.redhat.com/ubi8/openjdk-17:1.14仅包含JDK,没有Maven环境,直接在Dockerfile中执行RUN ./mvnw package会因找不到Maven命令而失败,无法生成target目录。
  2. 原Dockerfile默认依赖本地已构建好的target产物,但Render构建环境是全新的,没有预先生成的构建产物。

解决方案1:使用Quarkus官方多阶段构建Dockerfile(推荐)

多阶段构建会先在包含Maven的镜像中完成编译打包,再将产物复制到轻量JDK镜像中,既解决target目录缺失问题,又避免生产镜像冗余。

替换你现有的./src/main/docker/Dockerfile.jvm内容为:

# 构建阶段:用Maven镜像完成编译打包
FROM maven:3.8.6-openjdk-17 AS builder
WORKDIR /project
COPY pom.xml .
COPY src src
RUN mvn package -DskipTests

# 运行阶段:用轻量JDK镜像运行应用
FROM registry.access.redhat.com/ubi8/openjdk-17:1.14
ENV LANGUAGE='en_US:en'
COPY --from=builder --chown=185 /project/target/quarkus-app/lib/ /deployments/lib/
COPY --from=builder --chown=185 /project/target/quarkus-app/*.jar /deployments/
COPY --from=builder --chown=185 /project/target/quarkus-app/app/ /deployments/app/
COPY --from=builder --chown=185 /project/target/quarkus-app/quarkus/ /deployments/quarkus/
EXPOSE 8080
USER 185
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"

解决方案2:在Render中配置前置构建命令(无需修改Dockerfile)

如果不想改动Dockerfile,可在Render项目设置中添加前置构建命令,提前生成target目录:

  1. 进入Render项目的Settings页面
  2. 找到Build Command选项,设置为:
./mvnw package -DskipTests
  1. 保存设置后重新触发构建

额外注意事项

  • 确保GitHub仓库中包含mvnw和mvnw.cmd文件(Quarkus初始化项目时自动生成),且mvnw有执行权限(本地执行chmod +x mvnw后推送到仓库)。
  • 添加-DskipTests可加快构建速度,若需在构建阶段运行测试可移除该参数。

内容的提问来源于stack exchange,提问作者Andrea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:05:37