Quarkus使用及Docker构建

官网:

https://quarkus.io/
在这里插入图片描述

一. 准备环境
  1. JDK8或者11+
    https://adoptopenjdk.net/
    在这里插入图片描述

  2. Apache Maven 版本3.6.2+
    https://maven.apache.org/download.cgi在这里插入图片描述

  3. GraalVM安装下载

    1. 方法一:官网下载,自己安装配置
      https://www.graalvm.org/downloads/
      在这里插入图片描述
      根据需求选择社区版企业版
      安装配置
      在这里插入图片描述

    2. 方法二:sdkman安装

      • sdk安装

        curl -s "https://get.sdkman.io" | bash
        source "$HOME/.sdkman/bin/sdkman-init.sh"
        
      • 安装GraalVM

        sdk install java 21.1.0.r11-grl
        

    最后安装GraalVM本机镜像

    gu install native-image
    

    查看在这里插入图片描述

二. 开始项目
  1. 项目初始化
    方法一:下载模板maven初始化
    下载项目模板

    git clone https://github.com/quarkusio/quarkus-quickstarts.git
    

    引导项目,初始化

    • Linux 和 MacOS
      -Dextensions="扩展项"安装扩展

      mvn io.quarkus:quarkus-maven-plugin:1.13.7.Final:create \
          -DprojectGroupId=org.acme \
          -DprojectArtifactId=getting-started \
          -DclassName="org.acme.getting.started.GreetingResource" \
          -Dpath="/hello"
      cd getting-started
      
    • windows
      cmd

      mvn io.quarkus:quarkus-maven-plugin:1.13.7.Final:create -DprojectGroupId=org.acme -DprojectArtifactId=getting-started -DclassName="org.acme.getting.started.GreetingResource" -Dpath="/hello"
      

      Powershell

      mvn io.quarkus:quarkus-maven-plugin:1.13.7.Final:create "-DprojectGroupId=org.acme" "-DprojectArtifactId=getting-started" "-DclassName=org.acme.getting.started.GreetingResource" "-Dpath=/hello"
      

    方法二:平台构建
    类似spring.io平台初始化,扩展组件自选
    链接:https://code.quarkus.io/
    在这里插入图片描述
    方法三:idea创建
    新建项目
    在这里插入图片描述
    选择组件
    在这里插入图片描述ok
    在这里插入图片描述

三. 打包部署
  1. 生成jar
    在这里插入图片描述

  2. 二进制可执行文件

    ./mvnw package -Pnative
    或 mvn package -Pnative
    可以添加跳过测试步骤
    mvn package -Pnative -DskipTests  
    如果有错误开启debug日志(-X)
    mvn -X package -Pnative -DskipTests  
    

    在这里插入图片描述
    在这里插入图片描述

  3. 构建镜像
    生成不同类型的二进制程序

    # Docker
    ./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=docker
    # Podman
    ./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=podman
    

    构建镜像

    docker build -f src/main/docker/Dockerfile.native -t quarkus/demo .
    

    在这里插入图片描述
    在这里插入图片描述

    docker run

    docker run -i --rm -p 8080:8080 quarkus/demo
    

    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 Docker 构建镜像并部署到 Kubernetes (k8s) 的步骤: 1. 在本地开发环境中创建一个 Dockerfile 文件。Dockerfile 文件定义了如何构建 Docker 镜像,包括基础镜像、应用程序的依赖、应用程序的代码等信息。例如: ``` FROM node:12-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . CMD ["npm", "start"] ``` 2. 使用 Docker 命令构建 Docker 镜像,例如: ``` docker build -t my-docker-image:tag . ``` 其中,my-docker-image:tag 是 Docker 镜像的名称和版本号。 3. 将 Docker 镜像推送到 Docker Hub 或其他 Docker 镜像仓库中,例如: ``` docker push my-docker-image:tag ``` 4. 使用 kubectl 命令创建一个 Deployment 对象: ``` kubectl create deployment my-app --image=my-docker-image:tag ``` 其中,my-app 是应用程序的名称,my-docker-image:tag 是 Docker 镜像的名称和版本号。 5. 使用 kubectl 命令创建一个 Service 对象: ``` kubectl expose deployment my-app --port=80 --target-port=8080 --type=LoadBalancer ``` 其中,my-app 是应用程序的名称,80 是 Service 对象的端口号,8080 是容器的端口号,LoadBalancer 是 Service 对象的类型。 6. (可选)使用 kubectl 命令创建一个 Ingress 对象: ``` kubectl apply -f my-ingress.yaml ``` 其中,my-ingress.yaml 是 Ingress 对象的 YAML 配置文件。在配置文件中,需要指定 Ingress 规则、后端 Service 对象的名称和端口号等信息。 7. 部署应用程序: ``` kubectl apply -f my-deployment.yaml ``` 其中,my-deployment.yaml 是 Deployment 对象的 YAML 配置文件。在配置文件中,需要指定应用程序的镜像信息、容器数量、容器的启动参数等信息。 8. 监控应用程序: ``` kubectl logs my-app-<pod-id> kubectl describe pod my-app-<pod-id> ``` 其中,my-app-<pod-id> 是应用程序的 Pod 的名称。使用 kubectl logs 命令查看 Pod 的日志,使用 kubectl describe 命令查看 Pod 的状态信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值