3.2. OpenShift Container Platform에 애플리케이션 배포


S2I(Source-to-Image) 워크플로를 사용하여 OpenShift Container Platform의 JBoss EAP에 애플리케이션을 배포할 수 있습니다. S2I 워크플로는 Git 리포지토리에서 소스 코드를 가져와 사용하려는 언어 및 프레임워크를 기반으로 하는 컨테이너에 삽입합니다. S2I 워크플로가 완료되면 src 코드가 컴파일되고 애플리케이션이 패키지화되고 JBoss EAP 서버에 배포됩니다.

3.2.1. OpenShift Container Platform에 배포할 애플리케이션 준비

OpenShift Container Platform은 Git 리포지토리에서 호스팅되는 애플리케이션을 사용합니다. OpenShift에 애플리케이션을 배포하려면 먼저 Git 리포지토리로 애플리케이션을 푸시해야 합니다. 그 후 JBoss EAP helm 차트를 사용하여 애플리케이션 배포를 구성할 수 있습니다.

사전 요구 사항

  • 애플리케이션을 생성했습니다.

    자세한 내용은 Hello World 서블릿 생성을 참조하십시오.

  • Git 리포지토리가 생성되어 있습니다.

프로세스

  1. 아직 없는 경우 애플리케이션을 로컬 Git 리포지토리로 이동합니다.

    $ mv -r helloworld/ <your_git_repo>
  2. pom.xml 구성 파일에 다음 속성을 정의합니다.

    <properties>
        ...
        <version.plugin.eap>1.0.0.Final-redhat-00013</version.plugin.eap> 
    1
    
    </properties>
    1
    <version.plugin.eap >은 JBoss EAP Maven 플러그인의 버전을 정의합니다.
  3. < project > 섹션의 < build > 섹션에서 JBoss EAP maven 플러그인을 < pluginManagement >에 추가합니다.

    <project>
        ...
        <build>
            <pluginManagement>
                <plugins>
                    ...
                    <plugin>
                        <groupId>org.jboss.eap.plugins</groupId>
                        <artifactId>eap-maven-plugin</artifactId>
                        <version>${version.plugin.eap}</version>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    </project>
  4. pom.xml 구성 파일에 "openshift" 프로필을 생성합니다.

    이 프로필은 OpenShift Container Platform에 배포하는 데 필요한 플러그인, 기능 팩 및 계층을 정의합니다.

    <profiles>
        <profile>
            <id>openshift</id>
            <build>
                <plugins>
                    <plugin>
                         <groupId>org.jboss.eap.plugins</groupId>
                         <artifactId>eap-maven-plugin</artifactId>     
    1
    
                         <configuration>
                             <channels>
                                 <channel>
                                     <manifest>
                                         <groupId>org.jboss.eap.channels</groupId>
                                         <artifactId>eap-8.0</artifactId>
                                     </manifest>
                                 </channel>
                             </channels>
                             <feature-packs>
                                 <feature-pack>                            
    2
    
                                     <location>org.jboss.eap:wildfly-ee-galleon-pack</location>
                                 </feature-pack>
                                 <feature-pack>
                                     <location>org.jboss.eap.cloud:eap-cloud-galleon-pack</location>
                                 </feature-pack>
                             </feature-packs>
                             <layers>                                      
    3
    
                                 <layer>cloud-server</layer>
                             </layers>
                             <name>ROOT.war</name>                         
    4
    
                         </configuration>
                         <executions>
                             <execution>
                                 <goals>
                                     <goal>package</goal>
                                 </goals>
                             </execution>
                         </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
    1
    Wildfly-maven-plugin 은 OpenShift Container Platform에 배포된 애플리케이션을 사용하여 JBoss EAP 인스턴스를 프로비저닝하기 위한 JBoss EAP 플러그인입니다.
    2
    feature-packs 는 기능을 정의합니다(서버를 동적으로 프로비저닝하는 기능이 포함된 파일의 압축을 풉니다). 이 경우 feature-packs org.wildfly:wildfly-galleon-packorg.wildfly.cloud:wildfly-galleon-pack 이 필요합니다.
    3
    계층 은 프로비저닝된 서버에 포함할 계층(구성된 기능 팩에서)을 정의합니다. 각 계층은 자체적으로 설치하거나 다른 계층과 함께 설치할 수 있는 하나 이상의 서버 기능을 식별합니다. Red Hat은 클라우드 서버에 적합한 JBoss EAP의 기본 기능만 프로비저닝하는 cloud-server 계층을 선택합니다.
    4
    <name>ROOT.war</name >: 애플리케이션의 웹 아카이브(WAR)의 결과 이름을 정의합니다. ROOT.war 가 지정되면 애플리케이션이 서버의 루트 경로에 배포됩니다. 그렇지 않으면 < name/> 상대 경로에 배포됩니다.
  5. 애플리케이션이 컴파일되는지 확인합니다.

    $ mvn package -Popenshift
  6. 변경 사항을 리포지토리로 내보냅니다.

3.2.2. Helm을 사용하여 OpenShift의 JBoss EAP에 애플리케이션 배포

JBoss EAP Helm 차트를 사용하여 Helm을 사용하여 OpenShift의 JBoss EAP에 애플리케이션을 구성하고 배포합니다.

사전 요구 사항

프로세스

  1. 애플리케이션 root directoy에 charts 라는 디렉터리를 생성하고 해당 디렉터리로 이동합니다. 애플리케이션 루트 디렉터리는 pom.xml 구성 파일이 포함된 디렉터리입니다.

    $ mkdir charts; cd charts
  2. 다음 콘텐츠를 사용하여 helm.yaml 파일을 생성합니다.

    build:
      uri: https://github.com/<user>/<repository>.git     
    1
    
      ref: <branch_name>                                  
    2
    
      contextDir: helloworld                              
    3
    
    deploy:
      replicas: 1                                         
    4
    1
    OpenShift Container Platform에 배포할 애플리케이션이 포함된 Git 리포지토리의 URL을 지정합니다.
    2
    애플리케이션이 포함된 Git 분기를 지정합니다.
    3
    애플리케이션이 포함된 디렉터리를 지정합니다.
    4
    생성할 Pod 수를 지정합니다.
  3. Helm에 JBoss EAP 리포지토리를 구성합니다.

    • 이전에 JBoss EAP 리포지토리를 Helm에 추가하지 않은 경우 추가합니다.

      $ helm repo add jboss-eap https://jbossas.github.io/eap-charts/
    • JBoss EAP 리포지토리를 Helm에 이미 추가한 경우 업데이트합니다.

      $ helm repo update jboss-eap
  4. helm를 사용하여 애플리케이션을 배포합니다.

    $ helm install helloworld -f helm.yaml jboss-eap/eap8

    배포를 완료하는 데 몇 분이 걸릴 수 있습니다.

검증

  1. 배포에 대한 경로의 URL을 가져옵니다.

    $ APPLICATION_URL=https://$(oc get route helloworld --template='{{ .spec.host }}') &&
    echo "" &&
    echo "Application URL: $APPLICATION_URL"
  2. 브라우저에서 "Application URL"으로 이동합니다.

    "/HelloWorld" 경로의 서블릿으로 리디렉션되고 다음 메시지가 표시됩니다.

    Hello World!
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동