이 콘텐츠는 선택한 언어로 제공되지 않습니다.

Chapter 4. Using S2I to deploy Red Hat build of Quarkus applications to OpenShift Container Platform


You can deploy your Quarkus applications to Red Hat OpenShift Container Platform by using the Source-to-Image (S2I) method. With S2I, you must provide the source code to the build container through a Git repository or by uploading the source code at build time.

The deployment procedure differs based on the Java version your Quarkus application uses.

4.1. Deploying Quarkus applications to OpenShift Container Platform with Java 17

You can deploy Quarkus applications that run Java 17 to OpenShift Container Platform by using the S2I method.

4.1.1. Prerequisites

  • You have a Quarkus application built with Java 17.
  • Optional: You have a Quarkus project that includes the quarkus-openshift extension.
  • You are working in the correct OpenShift project namespace.
  • Your project is hosted in a Git repository.

4.1.2. Procedure

  1. Open the pom.xml file, and set the Java version to 17:

    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    Copy to Clipboard Toggle word wrap
  2. Package your Java 17 application, by entering the following command:

    ./mvnw clean package
    Copy to Clipboard Toggle word wrap
  3. Create a directory called .s2i at the same level as the pom.xml file.
  4. Create a file called environment in the .s2i directory and add the following content:

    MAVEN_S2I_ARTIFACT_DIRS=target/quarkus-app
    S2I_SOURCE_DEPLOYMENTS_FILTER=app lib quarkus quarkus-run.jar
    JAVA_OPTIONS=-Dquarkus.http.host=0.0.0.0
    AB_JOLOKIA_OFF=true
    JAVA_APP_JAR=/deployments/quarkus-run.jar
    Copy to Clipboard Toggle word wrap
  5. Commit and push your changes to the remote Git repository.
  6. Import the supported OpenShift Container Platform image by entering the following command:

    oc import-image ubi9/openjdk-17 --from=registry.access.redhat.com/ubi9/openjdk-17 --confirm
    Copy to Clipboard Toggle word wrap
    Note
    • If you are using the OpenShift image registry and pulling from image streams in the same project, your pod service account must already have the correct permissions.
    • If you are pulling images across other OpenShift Container Platform projects or from secured registries, additional configuration steps might be required.

    For more information, see the Red Hat Openshift Container Platform documentation.

  7. Build the project, create the application, and deploy the OpenShift Container Platform service:

    oc new-app registry.access.redhat.com/ubi9/openjdk-17~<git_path> --name=<project_name>
    Copy to Clipboard Toggle word wrap
    • Replace <git_path> with the path of the Git repository that hosts your Quarkus project. For example, oc new-app registry.access.redhat.com/ubi9/openjdk-17~https://github.com/johndoe/code-with-quarkus.git --name=code-with-quarkus.

      If you do not have SSH keys configured for the Git repository, when specifying the Git path, use the HTTPS URL instead of the SSH URL.

    • Replace <project_name> with the name of your application.
  8. To deploy an updated version of the project, push changes to the Git repository, and then run:

    oc start-build <project_name>
    Copy to Clipboard Toggle word wrap
  9. To expose a route to the application, run the following command:

    oc expose svc <project_name>
    Copy to Clipboard Toggle word wrap

4.1.3. Verification

  1. List the pods associated with your current OpenShift Container Platform project:

    oc get pods
    Copy to Clipboard Toggle word wrap
  2. To get the log output for your application’s pod, run the following command, replacing <pod_name> with the name of the latest pod prefixed by your application name:

    oc logs -f <pod_name>
    Copy to Clipboard Toggle word wrap

4.2. Deploying Quarkus applications to OpenShift Container Platform with Java 21

You can deploy Quarkus applications that run Java 21 to OpenShift Container Platform by using the S2I method.

4.2.1. Prerequisites

  • Optional: You have a Quarkus Maven project that includes the quarkus-openshift extension.
  • You are working in the correct OpenShift Container Platform project namespace.
  • Your project is hosted in a Git repository.

4.2.2. Procedure

  1. Open the pom.xml file, and set the Java version to 21:

    <maven.compiler.source>21</maven.compiler.source>
    <maven.compiler.target>21</maven.compiler.target>
    Copy to Clipboard Toggle word wrap
  2. Package your Java 21 application, by entering the following command:

    ./mvnw clean package
    Copy to Clipboard Toggle word wrap
  3. Create a directory called .s2i at the same level as the pom.xml file.
  4. Create a file called environment in the .s2i directory and add the following content:

    MAVEN_S2I_ARTIFACT_DIRS=target/quarkus-app
    S2I_SOURCE_DEPLOYMENTS_FILTER=app lib quarkus quarkus-run.jar
    JAVA_OPTIONS=-Dquarkus.http.host=0.0.0.0
    AB_JOLOKIA_OFF=true
    JAVA_APP_JAR=/deployments/quarkus-run.jar
    Copy to Clipboard Toggle word wrap
  5. Commit and push your changes to the remote Git repository.
  6. Import the supported OpenShift Container Platform image by entering the following command:

    oc import-image ubi9/openjdk-21 --from=registry.access.redhat.com/ubi9/openjdk-21 --confirm
    Copy to Clipboard Toggle word wrap
    Note
    • If you are using the OpenShift image registry and pulling from image streams in the same project, your pod service account must already have the correct permissions.
    • If you are pulling images across other OpenShift Container Platform projects or from secured registries, additional configuration steps might be required. For more information, see the Red Hat Openshift Container Platform documentation.
    • If you are deploying on IBM Z infrastructure, enter oc import-image ubi9/openjdk-21 --from=registry.redhat.io/ubi9/openjdk-21 --confirm instead. For information about this image, see Red Hat build of OpenJDK 21.
  7. Build the project, create the application, and deploy the OpenShift Container Platform service:

    oc new-app registry.access.redhat.com/ubi8/openjdk-21~<git_path> --name=<project_name>
    Copy to Clipboard Toggle word wrap
    • Replace <git_path> with the path of the Git repository that hosts your Quarkus project. For example, oc new-app registry.access.redhat.com/ubi9/openjdk-21~https://github.com/johndoe/code-with-quarkus.git --name=code-with-quarkus.

      If you do not have SSH keys configured for the Git repository, when specifying the Git path, use the HTTPS URL instead of the SSH URL.

    • Replace <project_name> with the name of your application.

      Note

      If you are deploying on IBM Z infrastructure, enter oc new-app ubi9/openjdk-21~<git_path> --name=<project_name> instead.

  8. To deploy an updated version of the project, push changes to the Git repository, and then run:

    oc start-build <project_name>
    Copy to Clipboard Toggle word wrap
  9. To expose a route to the application, run the following command:

    oc expose svc <project_name>
    Copy to Clipboard Toggle word wrap

4.2.3. Verification

  1. List the pods associated with your current OpenShift Container Platform project:

    oc get pods
    Copy to Clipboard Toggle word wrap
  2. To get the log output for your application’s pod, run the following command, replacing <pod_name> with the name of the latest pod prefixed by your application name:

    oc logs -f <pod_name>
    Copy to Clipboard Toggle word wrap

4.3. References

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat