Hug*_*ama 5 graalvm quarkus graalvm-native-image apple-silicon apple-m1
我尝试运行两个心轴:
./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel:20.3.2.0-Final-java11
Run Code Online (Sandbox Code Playgroud)
和 GraalVM 版本:
./mvnw package -Pnative -Dquarkus.native.container-build=true
Run Code Online (Sandbox Code Playgroud)
但他们只是卡在构建上,我有 M1 的最新 Docker,这是来自 mandrel 的示例,它只是使用 300% cpu 停留在那里:
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] docker run -v lambda-0.0.1-SNAPSHOT-native-image-source-jar:/project:z --env LANG=C --rm quay.io/quarkus/ubi-quarkus-mandrel:20.3.2.0-Final-java11 -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -J-Dcom.mysql.cj.disableAbandonedConnectionCleanup=true -J-DCoordinatorEnvironmentBean.transactionStatusManagerEnable=false -J-Dsun.nio.ch.maxUpdateArraySize=100 -J-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true -J-Dio.netty.leakDetection.level=DISABLED -J-Dio.netty.allocator.maxOrder=1 -J-Duser.language=en -J-Dfile.encoding=UTF-8 --report-unsupported-elements-at-runtime --enable-all-security-services --allow-incomplete-classpath -H:DynamicProxyConfigurationFiles=dynamic-proxies.json -H:ResourceConfigurationFiles=resources-config.json -H:ReflectionConfigurationFiles=reflection-config.json --initialize-at-run-time=com.common.utils -H:+ReportExceptionStackTraces --initialize-at-build-time= -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy\$BySpaceAndTime -H:+JNI -jar lambda-0.0.1-SNAPSHOT-runner.jar -H:FallbackThreshold=0 -H:+ReportExceptionStackTraces -H:+AddAllCharsets -H:EnableURLProtocols=http,https --enable-all-security-services -H:-UseServiceLoaderFeature -H:+StackTrace lambda-0.0.1-SNAPSHOT-runner
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
[ithaca-creditcards-service-lambda-0.0.1-SNAPSHOT-runner:71] classlist: 75,914.69 ms, 1.06 GB
[ithaca-creditcards-service-lambda-0.0.1-SNAPSHOT-runner:71] (cap): 5,804.38 ms, 1.06 GB
[ithaca-creditcards-service-lambda-0.0.1-SNAPSHOT-runner:71] setup: 18,307.33 ms, 1.06 GB
02:57:58,598 INFO [org.hib.val.int.uti.Version] HV000001: Hibernate Validator 6.1.6.Final
02:57:59,639 INFO [org.hib.Version] HHH000412: Hibernate ORM core version 5.4.24.Final
02:57:59,679 INFO [org.hib.ann.com.Version] HCANN000001: Hibernate Commons Annotations {5.1.2.Final}
02:57:59,894 INFO [org.hib.dia.Dialect] HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect
02:58:02,539 INFO [org.hib.orm.beans] HHH10005002: No explicit CDI BeanManager reference was passed to Hibernate, but CDI is available on the Hibernate ClassLoader.
Run Code Online (Sandbox Code Playgroud)
首先为 GraalVM 镜像创建 docker 文件:
FROM ghcr.io/graalvm/graalvm-ce:22 as build
RUN gu install native-image
WORKDIR /project
VOLUME ["/project"]
ENTRYPOINT ["native-image"]
Run Code Online (Sandbox Code Playgroud)
将此文件保存为 Dockerfile.graalvm。然后使用它构建 GraalVM 镜像
docker build -f src/main/docker/Dockerfile.graalvm -t graalvm .
Run Code Online (Sandbox Code Playgroud)
现在你已经有了 GraalVM 镜像并且可以构建 quarkus Linux 镜像
./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.builder-image=graalvm
Run Code Online (Sandbox Code Playgroud)
已创建的运行程序是 64 位 ARM aarch64 可执行文件,可用于创建 docker 容器
docker build -f src/main/docker/Dockerfile.native -t quarkus/your-app .
Run Code Online (Sandbox Code Playgroud)
最后运行它
docker run --rm -p 8080:8080 quarkus/your-app
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1480 次 |
| 最近记录: |