微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用 GraalVM 构建应用程序本机映像

如何解决无法使用 GraalVM 构建应用程序本机映像

我在 Micronaut 中构建了一个 API,并尝试在其中部署 GCP Cloud Run 作为本机 graalVM 映像

这是我的Dockerfile

# Stage 1: Build the JAR
FROM gradle:jdk11 as gradle
copY --chown=gradle . /home/app
workdir /home/app
RUN gradle assemble --no-daemon

# Stage 2: Build the native image
FROM ghcr.io/graalvm/graalvm-ce:latest as graalvm
RUN \
    # Install GraalVM Native Image
    gu install native-image;
copY --from=gradle /home/app/build/libs/greetings-cloud-run-0.1-all.jar /home/app/server.jar
workdir /home/app
RUN native-image -H:Name=greetings-cloud-run --no-server -cp server.jar com.arun.Application


# Stage 3: Prepare Server
FROM frolvlad/alpine-glibc
RUN apk update && apk add libstdc++
EXPOSE 8080
copY --from=graalvm /home/app/greetings-cloud-run .
ENTRYPOINT ["./greetings-cloud-run"]

我检查到 Stage-2 并且本机映像运行良好。我包含了 Stage-3 来运行我的本机映像并以以下错误结束

$ docker run a/micro                                                                                                                                  
./greetings-cloud-run: /usr/lib/libstdc++.so.6: no version information available (required by ./greetings-cloud-run)
./greetings-cloud-run: Relink `/usr/lib/libgcc_s.so.1' with `/usr/glibc-compat/lib/libc.so.6' for IFUNC symbol `memset'

需要有关如何运行本机映像的帮助

解决方法

它应该是 Micronaut 文档中的标准内容,

试试https://guides.micronaut.io/latest/micronaut-creating-first-graal-app-maven-java.html

5.2.在 Docker 中创建原生镜像
遵循此方法的输出是运行应用程序本机映像的 Docker 映像。您无需安装任何额外的依赖项。

使用 Maven 构建 GraalVM 原生镜像
$ ./mvnw package -Dpackaging=docker-native

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?