2.5. 기존 Maven 바이너리를 사용하여 OpenShift 애플리케이션용 JWS 생성


기존 Maven 바이너리를 사용하여 OpenShift용 JWS를 생성할 수 있습니다. oc start-build 명령을 사용하여 OpenShift에 기존 애플리케이션을 배포할 수 있습니다.

참고

다음 절차에서는 tomcat-websocket-chat quickstart 예제를 기반으로 하는 예제 애플리케이션을 생성하는 방법을 보여줍니다.

사전 요구 사항

  • OpenShift용 JWS에 배포하려는 애플리케이션에 대해 기존 .war,.ear 또는 .jar 파일이 있거나 로컬에서 애플리케이션을 빌드했습니다.

    예를 들어 tomcat-websocket-chat 애플리케이션을 로컬로 빌드하려면 다음 단계를 수행합니다.

    1. 소스 코드를 복제하려면 다음 명령을 입력합니다.

      Copy to Clipboard Toggle word wrap
      $ git clone https://github.com/web-servers/tomcat-websocket-chat-quickstart.git
    2. Red Hat JBoss Middleware Maven 리포지토리 구성에 설명된 대로 Red Hat JBoss Middleware Maven 리포지토리를 구성합니다.

      Maven 리포지토리에 대한 자세한 내용은 Red Hat JBoss Enerprise Maven Repository 웹 페이지를 참조하십시오.

    3. 애플리케이션을 빌드하려면 다음 명령을 입력합니다.

      Copy to Clipboard Toggle word wrap
      $ cd tomcat-websocket-chat-quickstart/tomcat-websocket-chat/
      $ mvn clean package

      이전 명령은 다음 출력을 생성합니다.

      Copy to Clipboard Toggle word wrap
      [INFO] Scanning for projects...
      [INFO]
      [INFO] ------------------------------------------------------------------------
      [INFO] Building Tomcat websocket example 1.2.0.Final
      [INFO] ------------------------------------------------------------------------
      ...
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD SUCCESS
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 01:28 min
      [INFO] Finished at: 2018-01-16T15:59:16+10:00
      [INFO] Final Memory: 19M/271M
      [INFO] ------------------------------------------------------------------------

프로세스

  1. 로컬 파일 시스템에서 바이너리 빌드용 소스 디렉터리와 배포 하위 디렉터리를 생성합니다.

    예를 들어 tomcat-websocket-chat 애플리케이션에 대한 /ocp 소스 디렉터리 및 /deployments 하위 디렉터리를 생성하려면 다음 명령을 입력합니다.

    Copy to Clipboard Toggle word wrap
    $ cd tomcat-websocket-chat-quickstart/tomcat-websocket-chat/
    $ mkdir -p ocp/deployments
    참고

    소스 디렉터리는 Maven 바이너리에 포함되지 않은 애플리케이션에 필요한 모든 콘텐츠를 포함할 수 있습니다. 자세한 내용은 JWS for OpenShift S2I process 를 참조하십시오.

  2. .war,.ear 또는 .jar 바이너리 파일을 deployments 하위 디렉터리에 복사합니다.

    예를 들어 예제 tomcat-websocket-chat 애플리케이션의 .war 파일을 복사하려면 다음 명령을 입력합니다.

    Copy to Clipboard Toggle word wrap
    $ cp target/websocket-chat.war ocp/deployments/
    참고

    이전 예에서 target/websocket-chat.war 는 복사할 바이너리 파일의 경로입니다.

    소스 디렉터리의 배포 하위 디렉터리에 있는 애플리케이션 아카이브는 OpenShift에 빌드되는 이미지의 $JWS_HOME/tomcat/webapps/ 디렉터리에 복사됩니다. 애플리케이션이 성공적으로 배포될 수 있도록 하려면 웹 애플리케이션 데이터가 포함된 디렉터리 계층 구조가 올바르게 구성되어 있는지 확인해야 합니다. 자세한 내용은 JWS for OpenShift S2I process 를 참조하십시오.

  3. OpenShift 인스턴스에 로그인합니다.

    Copy to Clipboard Toggle word wrap
    $ oc login <url>
  4. 필요한 경우 새 프로젝트를 생성합니다.

    예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    $ oc new-project jws-bin-demo
    참고

    이전 예에서 jws-bin-demo 는 생성하려는 프로젝트의 이름입니다.

  5. 애플리케이션에 사용할 OpenShift 이미지 스트림의 JWS를 식별합니다.

    Copy to Clipboard Toggle word wrap
    $ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '

    이전 명령은 다음 유형의 출력을 생성합니다.

    Copy to Clipboard Toggle word wrap
    jboss-webserver61-openjdk17-tomcat10-openshift-ubi8
    참고

    -n openshift 옵션은 사용할 프로젝트를 지정합니다. oc get is -n openshift 명령은 openshift 프로젝트에서 이미지 스트림 리소스를 가져옵니다.

  6. 새 빌드 구성을 생성하고 이미지 스트림 및 애플리케이션 이름을 지정했는지 확인합니다.

    예를 들어 예제 tomcat-websocket-chat 애플리케이션에 대한 새 빌드 구성을 생성하려면 다음을 수행합니다.

    Copy to Clipboard Toggle word wrap
    $ oc new-build --binary=true \
     --image-stream=jboss-webserver61-openjdk17-tomcat10-openshift-ubi8:latest \
     --name=jws-wsch-app
    참고

    이전 예에서 jws-wsch-app 은 OpenShift용 JWS의 이름입니다.

    이전 명령은 다음 유형의 출력을 생성합니다.

    Copy to Clipboard Toggle word wrap
    --> Found image 8c3b85b (4 weeks old) in image stream "openshift/jboss-webserver61-tomcat10-openshift" under tag "latest" for "jboss-webserver61"
    
        JBoss Web Server 6.1
        --------------------
        Platform for building and running web applications on JBoss Web Server 6.1 - Tomcat v10
    
        Tags: builder, java, tomcat10
    
        * A source build using binary input will be created
          * The resulting image will be pushed to image stream "jws-wsch-app:latest"
          * A binary build was created, use 'start-build --from-dir' to trigger a new build
    
    --> Creating resources with label build=jws-wsch-app ...
        imagestream "jws-wsch-app" created
        buildconfig "jws-wsch-app" created
    --> Success
  7. 바이너리 빌드를 시작합니다.

    예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    $ oc start-build jws-wsch-app --from-dir=./ocp --follow
    참고

    이전 예에서 jws-wsch-app 은 OpenShift 애플리케이션의 JWS 이름이며 ocp 는 소스 디렉터리의 이름입니다.

    이전 명령은 OpenShift 이미지 빌드의 바이너리 입력을 위해 생성한 소스 디렉터리를 사용하도록 OpenShift에 지시합니다.

    이전 명령은 다음 유형의 출력을 생성합니다.

    Copy to Clipboard Toggle word wrap
    Uploading directory "ocp" as binary input for the build ...
    build "jws-wsch-app-1" started
    Receiving source from STDIN as archive ...
    
    Copying all deployments war artifacts from /home/jboss/source/deployments directory into `/opt/jws-6.1/tomcat/webapps` for later deployment...
    '/home/jboss/source/deployments/websocket-chat.war' -> '/opt/jws-6.1/tomcat/webapps/websocket-chat.war'
    
    Pushing image 172.30.202.111:5000/jws-bin-demo/jws-wsch-app:latest ...
    Pushed 0/7 layers, 7% complete
    Pushed 1/7 layers, 14% complete
    Pushed 2/7 layers, 29% complete
    Pushed 3/7 layers, 49% complete
    Pushed 4/7 layers, 62% complete
    Pushed 5/7 layers, 92% complete
    Pushed 6/7 layers, 100% complete
    Pushed 7/7 layers, 100% complete
    Push successful
  8. 이미지를 기반으로 새 OpenShift 애플리케이션을 생성합니다.

    예를 들면 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    $ oc new-app jws-wsch-app
    참고

    이전 예에서 jws-wsch-app 은 OpenShift용 JWS의 이름입니다.

    이전 명령은 다음 유형의 출력을 생성합니다.

    Copy to Clipboard Toggle word wrap
    --> Found image e5f3a6b (About a minute old) in image stream "jws-bin-demo/jws-wsch-app" under tag "latest" for "jws-wsch-app"
    
        JBoss Web Server 6.1
        --------------------
        Platform for building and running web applications on JBoss Web Server 6.1 - Tomcat v10
    
        Tags: builder, java, tomcat10
    
        * This image will be deployed in deployment config "jws-wsch-app"
        * Ports 8080/tcp, 8443/tcp, 8778/tcp will be load balanced by service "jws-wsch-app"
          * Other containers can access this service through the hostname "jws-wsch-app"
    
    --> Creating resources ...
        deploymentconfig "jws-wsch-app" created
        service "jws-wsch-app" created
    --> Success
        Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
         'oc expose svc/jws-wsch-app'
        Run 'oc status' to view your app.
  9. 사용자가 애플리케이션에 액세스할 수 있도록 서비스를 노출합니다.

    예를 들어 예제 jws-wsch-app 애플리케이션에 액세스할 수 있도록 하려면 다음 단계를 수행합니다.

    1. 노출할 서비스 이름을 확인합니다.

      Copy to Clipboard Toggle word wrap
      $ oc get svc -o name

      이전 명령은 다음 유형의 출력을 생성합니다.

      Copy to Clipboard Toggle word wrap
      service/jws-wsch-app
    2. 서비스를 노출합니다.

      Copy to Clipboard Toggle word wrap
      $ oc expose svc/jws-wsch-app

      이전 명령은 다음 유형의 출력을 생성합니다.

      Copy to Clipboard Toggle word wrap
      route "jws-wsch-app" exposed
  10. 노출된 경로의 주소를 검색합니다.

    Copy to Clipboard Toggle word wrap
    oc get routes --no-headers -o custom-columns='host:spec.host' jws-wsch-app
  11. 웹 브라우저를 열고 URL을 입력하여 애플리케이션에 액세스합니다.

    예를 들어 예제 jws-wsch-app 애플리케이션에 액세스하려면 다음 URL을 입력합니다.

    http://<address_of_exposed_route>/websocket-chat

    참고

    이전 예에서 < address_of_exposed_route&gt;를 배포에 적절한 값으로 바꿉니다.

추가 리소스

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat, Inc.