이 콘텐츠는 선택한 언어로 제공되지 않습니다.
Chapter 5. Deploying Red Hat build of Quarkus applications compiled to native executables
You can deploy your native Quarkus applications to OpenShift Container Platform compiled to native executables by using the Docker build strategy.
You must create a native executable for your application that targets a supported operating system and match the architecture. This means, if you are building on Windows, you create a native Linux executable by using a container runtime, for example, Docker or Podman.
Your Quarkus project includes pregenerated Dockerfiles with instructions. If you want to use a custom Dockerfile, add the file to the src/main/docker directory or any location inside the module. Additionally, if you want to have multiple Docker files and switch between them, set the path to your preferred Dockerfile by using the quarkus.openshift.native-dockerfile property.
This guide describes this strategy by using a Quarkus project with Maven as the example project.
5.1. Prerequisites 링크 복사링크가 클립보드에 복사되었습니다!
- A supported operating system or an Open Container Initiative (OCI) compatible container runtime, such as Podman or Docker.
-
You have a Quarkus Maven project that includes the
quarkus-openshiftextension. -
You have access to an OpenShift Container Platform cluster and the latest compatible version of the
ocCLI tool installed. - You are working in the correct OpenShift project namespace.
5.2. Procedure 링크 복사링크가 클립보드에 복사되었습니다!
Set the Docker build strategy in your
application.propertiesconfiguration file:quarkus.openshift.build-strategy=docker
quarkus.openshift.build-strategy=dockerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Enable container-based native builds:
quarkus.native.container-build=true
quarkus.native.container-build=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Set the following properties in the
application.propertiesfile based on your environment:If you are using an untrusted certificate, enable certificate trust for the
KubernetesClient:quarkus.kubernetes-client.trust-certs=true
quarkus.kubernetes-client.trust-certs=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow To expose the service and create an OpenShift Container Platform route, set the following property:
quarkus.openshift.route.expose=true
quarkus.openshift.route.expose=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow To use a custom Dockerfile instead of the pregenerated Dockerfiles, set the path to your custom Dockerfile:
quarkus.openshift.native-dockerfile=<path_to_your_dockerfile>
quarkus.openshift.native-dockerfile=<path_to_your_dockerfile>Copy to Clipboard Copied! Toggle word wrap Toggle overflow For example, to specify a custom Dockerfile named
Dockerfile.custom-native:quarkus.openshift.native-dockerfile=src/main/docker/Dockerfile.custom-native
quarkus.openshift.native-dockerfile=src/main/docker/Dockerfile.custom-nativeCopy to Clipboard Copied! Toggle word wrap Toggle overflow Specify the container engine:
To build a native executable with Podman:
quarkus.native.container-runtime=podman
quarkus.native.container-runtime=podmanCopy to Clipboard Copied! Toggle word wrap Toggle overflow To build a native executable with Docker:
quarkus.native.container-runtime=docker
quarkus.native.container-runtime=dockerCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Finally, build the native executable, package, and deploy your application to OpenShift Container Platform:
./mvnw clean package -Pnative -Dquarkus.openshift.deploy=true
./mvnw clean package -Pnative -Dquarkus.openshift.deploy=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3. Verification 링크 복사링크가 클립보드에 복사되었습니다!
Verify that an image stream and a service resource are created, and that the application is deployed. Use the OpenShift Container Platform web console or the following OpenShift Container Platform command-line interface (CLI) commands:
oc get is oc get pods oc get svc
oc get is1 oc get pods2 oc get svc3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
To get the log output for your application’s pod, run the following command where
<pod_name>is the name of the latest pod prefixed with the name of your application:oc logs -f <pod_name>
oc logs -f <pod_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow