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

Quarkus入门运行Native镜像提示GLIBC版本缺失问题求助

Quarkus Native镜像运行失败:GLIBC版本不匹配问题

我正在跟着Quarkus入门教程操作,生成了4种不同的Dockerfile。为体验Native特性,按教程步骤执行,前面都正常,但运行Dockerfile.native或Dockerfile.native-micro构建的镜像时失败,报错如下:

./mvnw package -Dnative
podman build -f src/main/docker/Dockerfile.native-micro -t quarkus/order-processor-dapr .
podman run -i --rm -p 8080:8080 quarkus/order-processor-dapr
...
./application: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by ./application)
./application: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by ./application)
./application: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by ./application)

这是官方开箱即用的教程,我不认为Podman是问题所在,疑惑是不是漏了配置或者环境有问题。附上Native版Dockerfile内容:

FROM registry.access.redhat.com/ubi8/ubi-minimal:8.9
WORKDIR /work/
RUN chown 1001 /work \
    && chmod "g+rwX" /work \
    && chown 1001:root /work
COPY --chown=1001:root target/*-runner /work/application

EXPOSE 8080
USER 1001

ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"]

解决方法

  • 容器化构建Native可执行文件(推荐)
    不要在本地直接构建Native包,改用Quarkus的容器化构建方式,确保构建环境和运行镜像的系统库版本一致:

    ./mvnw package -Dnative -Dquarkus.native.container-build=true
    

    该命令会使用Quarkus官方提供的容器镜像构建Native产物,生成的可执行文件能完美适配UBI 8环境。

  • 升级运行镜像的UBI版本
    若坚持本地构建,可将Dockerfile的基础镜像替换为UBI 9(其GLIBC版本为2.34,满足依赖要求):

    FROM registry.access.redhat.com/ubi9/ubi-minimal:9.2
    

    修改后重新构建镜像并运行即可。

  • 检查本地构建环境的GLIBC版本
    执行ldd --version查看本地系统的GLIBC版本,若远高于UBI 8的2.28,要么切换到容器化构建,要么更换为更低版本的系统环境构建Native包。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:32:28