OpenShift 之 Quarkus(2)将 Quarkus 应用部署到 OpenShift

36 篇文章 0 订阅
7 篇文章 0 订阅

OpenShift 4.x HOL教程汇总
已在 OpenShift 4.13 环境中运行


我们除了可以参考《 OpenShift 4 之 Quarkus(1)创建第一个Quarkus应用》外,还可以自动从应用源码完成在OpenShift上的应用部署。

在本地容器中运行

  1. 生成可执行程序
$ mvn package -Pnative -Dquarkus.native.container-runtime=podman -Dquarkus.native.remote-container-build=true -Dquarkus.container-image.build=true
$ ll target/hello-1.0.0-SNAPSHOT-runner
  1. 将应用打包成镜像 quarkus/hello-app
$ podman build -f src/main/docker/Dockerfile.native -t quarkus/hello-app .
$ podman image ls hello-app
REPOSITORY                   TAG         IMAGE ID      CREATED             SIZE
localhost/quarkus/hello-app  latest      56c8e9278121  About a minute ago  141 MB
  1. 运行容器,然后可进行测试。
$ podman run -i --rm -p 8080:8080 quarkus/hello-app
$ curl localhost:8080/hello
Hello from RESTEasy Reactive

将Quarkus按Java应用部署到OpenShift

$ QUARKUS_VERSION=3.2.2

$ mvn io.quarkus.platform:quarkus-maven-plugin:${QUARKUS_VERSION}.Final:create \
	-DplatformVersion=${QUARKUS_VERSION}.Final \
	-DprojectGroupId=org.acme \
	-DprojectArtifactId=getting-started \
	-Dextensions='resteasy'
	
$ mvnw quarkus:add-extension -Dextensions="io.quarkus:quarkus-openshift"

$ PROJECT_NAME=quarkus
$ oc new-project ${PROJECT_NAME}

$ mvnw clean package \
	-Dquarkus.openshift.build-strategy=docker \
	-Dquarkus.kubernetes.deploy=true \
	-Dquarkus.openshift.deployment-kind=Deployment \
	-Dquarkus.container-image.group=${PROJECT_NAME} \
	-Dquarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 \
	-Dquarkus.openshift.route.expose=true

$ oc get pod
NAME                               READY   STATUS      RESTARTS   AGE
getting-started-1-build            0/1     Completed   0          4m47s
getting-started-74bcbb8f57-c5kng   1/1     Running     0          3m18s

$ curl $(oc get route getting-started -ojsonpath='{.spec.host}')/hello
Hello RESTEasy

说明:以下方法可以使用 DeploymentConfig 部署。

$ mvnw clean package \
	-Dquarkus.openshift.build-strategy=docker \
	-Dquarkus.kubernetes.deploy=true \
	-Dquarkus.openshift.route.expose=true

将Quarkus应用按可执行程序部署到OpenShift

$ QUARKUS_VERSION=3.2.2

$ mvn io.quarkus.platform:quarkus-maven-plugin:${QUARKUS_VERSION}.Final:create \
	-DplatformVersion=${QUARKUS_VERSION}.Final \
	-DprojectGroupId=org.acme \
	-DprojectArtifactId=getting-started \
	-Dextensions='resteasy'
	
$ mvnw quarkus:add-extension -Dextensions="io.quarkus:quarkus-openshift"

$ PROJECT_NAME=quarkus
$ oc new-project ${PROJECT_NAME}

$ mvnw clean package \
	-Pnative \
	-Dquarkus.native.container-build=true \
	-Dquarkus.openshift.build-strategy=docker \
	-Dquarkus.kubernetes.deploy=true \
	-Dquarkus.openshift.deployment-kind=Deployment \
	-Dquarkus.container-image.group=${PROJECT_NAME} \
	-Dquarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 \
	-Dquarkus.openshift.route.expose=true

$ oc get pod
NAME                               READY   STATUS      RESTARTS   AGE
getting-started-1-build            0/1     Completed   0          103s
getting-started-59bd996b54-8khvb   1/1     Running     0          53s

$ curl $(oc get route getting-started -ojsonpath='{.spec.host}')/hello
Hello RESTEasy

说明:以下方法可以使用 DeploymentConfig 部署。

$ mvnw clean package \
	-Pnative \
	-Dquarkus.native.container-build=true \
	-Dquarkus.openshift.build-strategy=docker \
	-Dquarkus.kubernetes.deploy=true \
	-Dquarkus.openshift.route.expose=true

参考

https://quarkus.io/guides/deploying-to-openshift
https://quarkus.pro/guides/deploying-to-openshift-s2i.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值