ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

quarkus初试

2021-10-09 12:59:42  阅读:530  来源: 互联网

标签:初试 可执行文件 xxx quarkus Dquarkus build docker native


Quarkus初试

Quarkus是什么

引用Red Hat官网的话

Quarkus 是一个为 Java 虚拟机(JVM)和原生编译而设计的全堆栈 Kubernetes 原生 Java 框架,用于专门针对容器优化 Java,并使其成为无服务器Kubernetes 环境的高效平台。

看它的简介,它支持现有常用的java标准,库,框架,另外还支持GraalVM用于进行原生编译。接下来就记录跟着官网的get started在windows操作系统初次尝试Quarkus的过程。

第一个Quarkus程序

官网教程

这个跟着官网做就行,过程中也没有出现什么问题。

原生可运行Java

生成windos可执行文件

  1. 首先要安装GrallVM,我安装了Oracle GrallVM CE.之后配置环境变量GRAALVM_HOME

  2. 使用gu安装native-image. ${GRAALVM_HOME}/bin/gu install native-image

  3. 生成可执行文件(windows提前安装VS Build tools)。

    cmd /c 'call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat" && mvn package -Pnative'
    
  4. 在target文件夹中就可以看见生成的xx-runner.exe了,./xxx.exe即可运行。

生成Linux可执行文件

如果本地没有安装GrallVM,或者不是Linux平台,则可以选择借助容器来进行原生编译生成Linux可执行文件。

借助docker,同样windos下需要vs build环境:

./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=docker

这里我报了一个错,根据官网用-Dquarkus.native.remote-container-build=true替换-Dquarkus.native.container-build=true后成功。感觉电脑没买好,8g内存直接跑满。完成后target文件夹中可以看见生成的xxx-runner

生成镜像

生成容器镜像,要保证容器应用在运行,这里的话即docker运行中。

 ./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.container-image.build=true

这样会先构建Linux可执行文件,之后为它构建镜像。如果已经提前生成了可执行文件,则可以:

docker build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started .

Dockerfile.native简要分析

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

5. EXPOSE 8080
6. USER 1001

7. CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
  1. ubi-minimal:8.4为基础镜像构建,Red Hat提供的一个可用于生产的镜像。

  2. 指定work为工作目录。

  3. 为目录指定用户和权限。“g+rwX"表示组权限为读写执行。

  4. 拷贝可执行文件到工作目录。

  5. 暴露8080端口。

  6. 切换用户1001。

  7. 运行applicatin并暴露8080端口,启动容器。

完成后就可以在容器中看见生成的镜像了,运行容器:

docker run -i --rm -p 8080:8080 quarkus-quickstart/getting-started

杂项

powershell和cmd中的环境变量

CMD:

set  :查看所有环境变量
set xxx :查看特定环境变量
临时修改设置:
set xxx=xxx
SET XX=%XX%yy  在XX变量后追加yy
SET xx= 设置空值即删除
永久设置:
setx /m

PowerShell:

ls env:   查看所有环境变量
$env:xxx 查看特定环境变量
ls env:xx  可使用*通配符
临时设置修改:
$env:xxx=xxx
$env:xxx+=";c:\temp"  追加
删除
del env:xxx

docker更新后再次犯病

命令行管理员身份执行:netsh winsock reset

编译可执行文件时报错

Native-image building on Windows currently only supports target architecture: AMD64 (?? unsupported)

开始菜单 => Visual Studio Installer => 修改生成工具 => 语言包勾选英文,去掉中文。

成功解决。

标签:初试,可执行文件,xxx,quarkus,Dquarkus,build,docker,native
来源: https://blog.csdn.net/qq_45753808/article/details/120668844

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有