Red Hat JBoss Web Server for OpenShift


Red Hat JBoss Web Server 6.1

OpenShift용 Red Hat JBoss Web Server 설치 및 사용

Red Hat Customer Content Services

초록

OpenShift용 Red Hat JBoss Web Server 사용 가이드

Red Hat JBoss Web Server 설명서에 대한 피드백 제공

오류를 보고하거나 문서를 개선하기 위해 Red Hat Jira 계정에 로그인하여 문제를 제출하십시오. Red Hat Jira 계정이 없는 경우 계정을 생성하라는 메시지가 표시됩니다.

프로세스

  1. 티켓을 생성하려면 다음 링크를 클릭하십시오.
  2. 요약 에 문제에 대한 간략한 설명을 입력합니다.
  3. 설명에서 문제 또는 개선 사항에 대한 자세한 설명을 제공합니다. 문서에서 문제가 발생한 위치에 URL을 포함합니다.
  4. Create 를 클릭하여 문제를 적절한 문서 팀으로 라우팅합니다.

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

1장. Red Hat JBoss Web Server for OpenShift

Red Hat JBoss Web Server(JWS) 6.1의 Apache Tomcat 10 구성 요소는 Red Hat OpenShift를 위해 설계된 컨테이너화된 이미지로 제공됩니다. 이 이미지를 사용하여 하이브리드 클라우드 환경에 배포할 Java 웹 애플리케이션을 빌드, 확장 및 테스트할 수 있습니다.

1.1. Red Hat JBoss Web Server와 JWS for OpenShift의 차이점

OpenShift용 JWS 이미지는 Red Hat JBoss Web Server의 일반 릴리스와 다릅니다.

OpenShift 이미지용 JWS와 표준 JBoss Web Server 배포 간의 다음과 같은 차이점을 고려하십시오.

  • OpenShift용 JWS 이미지에서 /opt/jws-6.1/ 디렉터리는 JWS_HOME 의 위치입니다.
  • OpenShift 배포를 위한 JWS에서 모든 로드 밸런싱은 JBoss Core Services mod_cluster 커넥터 또는 mod_jk 커넥터가 아닌 OpenShift 라우터에서 처리합니다.

1.2. OpenShift 이미지 버전 호환성 및 지원

OpenShift 이미지는 다양한 OpenShift 버전 및 구성으로 테스트됩니다.

1.3. JBoss Web Server에서 지원되는 아키텍처

JBoss Web Server는 다음 아키텍처를 지원합니다.

  • AMD64 (x86_64)
  • OpenShift 환경의 IBM Z(s390x)
  • OpenShift 환경의 IBM Power(ppc64le)
  • OpenShift 환경의 ARM64(aarch64)

지원되는 모든 아키텍처에서 OpenJDK 17에 JBoss Web Server 이미지를 사용할 수 있습니다. 이미지에 대한 자세한 내용은 Red Hat Container Catalog 를 참조하십시오.

1.4. Red Hat 컨테이너 이미지의 상태 점검

모든 OpenShift Container Platform 이미지에는 연결된 상태 등급이 있습니다. Certfied 컨테이너 이미지 페이지로 이동한 다음 JBoss Web Server를 검색하고 6.1 버전을 선택하여 Red Hat JBoss Web Server 의 상태 등급을 찾을 수 있습니다.

OpenShift 컨테이너에서 상태 점검을 수행하여 컨테이너에 대한 실시간 및 준비 상태를 테스트할 수도 있습니다.

2장. OpenShift용 Red Hat JBoss Web Server 시작하기

Red Hat 컨테이너 레지스트리에서 최신 Red Hat JBoss Web Server for OpenShift 이미지 스트림 및 템플릿을 가져올 수 있습니다. 나중에 JWS for OpenShift S2I(Source-to-Image) 프로세스를 사용하여 기존 maven 바이너리 또는 소스 코드를 사용하여 OpenShift 애플리케이션용 JBoss Web Server를 생성할 수 있습니다.

이 문서의 지침을 따르기 전에 OpenShift 클러스터가 이미 설치되어 사전 요구 사항으로 구성되어 있는지 확인해야 합니다. OpenShift 클러스터 설치 및 구성에 대한 자세한 내용은 OpenShift Container Platform 설치 가이드를 참조하십시오.

참고

OpenShift 애플리케이션 템플릿용 JWS는 Tomcat 10용으로 배포됩니다.

2.1. Red Hat Container Registry의 인증 토큰 구성

Red Hat JBoss Web Server for OpenShift 이미지를 가져오고 사용하려면 먼저 Red Hat Container Registry에 액세스할 수 있도록 인증 토큰을 구성했는지 확인해야 합니다.

레지스트리 서비스 계정을 사용하여 인증 토큰을 생성할 수 있습니다. 즉, Red Hat 계정 사용자 이름과 암호를 OpenShift 구성에 사용하거나 저장할 필요가 없습니다.

프로세스

  1. Red Hat 고객 포털의 지침에 따라 레지스트리 서비스 계정을 사용하여 인증 토큰을 생성합니다.
  2. 토큰의 토큰 정보 페이지에서 OpenShift Secret 탭을 클릭하고 토큰의 OpenShift 시크릿이 포함된 YAML 파일을 다운로드합니다.
  3. 다운로드한 YAML 파일을 사용하여 OpenShift 프로젝트에 대한 인증 토큰 시크릿을 생성합니다.

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

    oc create -f 1234567_myserviceaccount-secret.yaml
    Copy to Clipboard Toggle word wrap
  4. OpenShift 프로젝트의 시크릿을 구성하려면 다음 명령을 입력합니다.

    oc secrets link default 1234567-myserviceaccount-pull-secret --for=pull
    oc secrets link builder 1234567-myserviceaccount-pull-secret --for=pull
    Copy to Clipboard Toggle word wrap
    참고

    이전 예에서 1234567-myserviceaccount 를 이전 단계에서 생성한 시크릿 이름으로 교체합니다.

2.2. JBoss Web Server 이미지 스트림 및 템플릿 가져오기

Red Hat Container Registry에서 OpenShift 이미지 스트림 및 템플릿에 Red Hat JBoss Web Server를 가져올 수 있습니다. JDK의 최신 JBoss Web Server 이미지 스트림과 템플릿을 OpenShift 프로젝트의 네임스페이스로 가져와야 합니다.

프로세스

  1. 고객 포털 인증 정보를 사용하여 Red Hat Container Registry에 로그인합니다. 자세한 내용은 Red Hat Container Registry Authentication 을 참조하십시오.
  2. 사용 중인 JDK 버전에 따라 다음 단계 중 하나를 수행합니다.

    • OpenJDK 17

      OpenJDK 17을 사용하는 경우 다음 명령을 입력합니다.

      for resource in \
      jws61-openjdk17-tomcat10-ubi8-basic-s2i.json \
      jws61-openjdk17-tomcat10-ubi8-https-s2i.json \
      jws61-openjdk17-tomcat10-ubi8-image-stream.json
      do
      oc replace -n openshift --force -f \
      https://raw.githubusercontent.com/jboss-container-images/jboss-webserver-6-openshift-image/jws61el8-v6.1.0/templates/${resource}
      done
      Copy to Clipboard Toggle word wrap

      이전 명령은 UBI8 JDK 17 이미지 스트림, jboss-webserver61-openjdk17-tomcat10-openshift-ubi8 및 명령에 지정된 모든 템플릿을 가져옵니다.

    • OpenJDK 21

      OpenJDK 21을 사용하는 경우 다음 명령을 입력합니다.

      for resource in \
      jws61-openjdk21-tomcat10-ubi8-basic-s2i.json \
      jws61-openjdk21-tomcat10-ubi8-https-s2i.json \
      jws61-openjdk21-tomcat10-ubi8-image-stream.json
      do
      oc replace -n openshift --force -f \
      https://raw.githubusercontent.com/jboss-container-images/jboss-webserver-6-openshift-image/jws61el8-v6.1.0/templates/${resource}
      done
      Copy to Clipboard Toggle word wrap

      이전 명령은 UBI8 JDK 21 이미지 스트림, jboss-webserver61-openjdk21-tomcat10-openshift-ubi8 및 명령에 지정된 모든 템플릿을 가져옵니다.

2.3. OpenShift 이미지에 대한 최신 JWS 가져오기

import-image 명령을 사용하여 사용 가능한 최신 OpenShift 이미지 JWS를 가져올 수 있습니다. Red Hat은 OpenJDK 17 및 OpenJDK 21에 대해 별도의 OpenShift 이미지를 위한 JWS를 제공합니다.

프로세스

  • 사용 중인 JDK 버전에 따라 다음 단계 중 하나를 수행합니다.

    • OpenJDK 17 OpenShift 이미지를 사용하여 코어 JBoss Web Server 6.1 tomcat 10을 업데이트하려면 다음 명령을 입력합니다.

      $ oc -n openshift import-image \
        jboss-webserver61-openjdk17-tomcat10-openshift-ubi8:6.1.0
      Copy to Clipboard Toggle word wrap
    • OpenJDK 21 OpenShift 이미지를 사용하여 코어 JBoss Web Server 6.1 tomcat 10을 업데이트하려면 다음 명령을 입력합니다.

      $ oc -n openshift import-image \
        jboss-webserver61-openjdk21-tomcat10-openshift-ubi8:6.1.0
      Copy to Clipboard Toggle word wrap
참고

가져오는 각 이미지 끝에 있는 6.1.0 태그는 OpenJDK 17 이미지 스트림 또는 OpenJDK 21 이미지 스트림에 설정된 스트림 버전을 나타냅니다.

2.4. JWS for OpenShift S2I 프로세스

애플리케이션 템플릿 매개변수 및 환경 변수와 함께 OpenShift S2I(Source-to-Image) 프로세스를 사용하여 OpenShift 이미지에 대해 JWS를 실행하고 구성할 수 있습니다.

OpenShift 이미지 JWS의 S2I 프로세스는 다음과 같습니다.

  • 구성 소스 디렉터리에 Maven settings.xml 파일이 포함된 경우 settings.xml 파일이 새 이미지의 $HOME/.m2/ 디렉터리로 이동합니다.
  • 소스 리포지토리에 pom.xml 파일이 포함된 경우 $MAVEN_ARGS 환경 변수의 콘텐츠를 사용하여 Maven 빌드가 트리거됩니다.

    기본적으로 패키지 목표는 테스트를 건너뛰기 위해 -DskipTests 인수가 포함된 openshift 프로필과 함께 사용되며 -Dcom.redhat.xpaas.repo.redhatga 인수를 사용하여 Red Hat GA 리포지토리를 활성화합니다.

  • 성공적으로 Maven 빌드의 결과는 /opt/jws-6.1/tomcat/webapps 디렉터리에 복사됩니다. 여기에는 $ARTIFACT_DIR 환경 변수에서 지정하는 소스 디렉터리의 모든 WAR 파일이 포함됩니다. $ARTIFACT_DIR 의 기본값은 target/ 디렉터리입니다.

    $MAVEN_ARGS_APPEND 환경 변수를 사용하여 Maven 인수를 수정할 수 있습니다.

  • 배포 소스 디렉터리의 모든 WAR 파일은 /opt/jws-6.1/tomcat/webapps 디렉터리에 복사됩니다.
  • 구성 소스 디렉터리의 모든 파일은 Maven settings.xml 파일을 제외하고 /opt/jws-6.1/tomcat/conf/ 디렉터리에 복사됩니다.
  • lib 소스 디렉터리의 모든 파일은 /opt/jws-6.1/tomcat/lib/ 디렉터리에 복사됩니다.

    참고

    사용자 지정 Tomcat 구성 파일을 사용하려면 context.xmlserver.xml 과 같은 일반 Tomcat 설치에 사용되는 것과 동일한 파일 이름을 사용합니다.

사용자 정의 Maven 아티팩트 저장소 미러를 사용하도록 S2I 프로세스를 구성하는 방법에 대한 자세한 내용은 Maven 아티팩트 리포지토리 미러 및 OpenShift용 JWS 를 참조하십시오.

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. 소스 코드를 복제하려면 다음 명령을 입력합니다.

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

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

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

      $ 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] ------------------------------------------------------------------------
      Copy to Clipboard Toggle word wrap

프로세스

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    --> 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
    Copy to Clipboard Toggle word wrap
  7. 바이너리 빌드를 시작합니다.

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

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

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

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

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

    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
    Copy to Clipboard Toggle word wrap
  8. 이미지를 기반으로 새 OpenShift 애플리케이션을 생성합니다.

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

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

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

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

    --> 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.
    Copy to Clipboard Toggle word wrap
  9. 사용자가 애플리케이션에 액세스할 수 있도록 서비스를 노출합니다.

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

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

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

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

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

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

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

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

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

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

    http://<address_of_exposed_route>/websocket-chat

    참고

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

2.6. 소스 코드에서 OpenShift용 JWS 생성

소스 코드에서 OpenShift용 JWS를 생성할 수 있습니다.

소스 코드에서 새 OpenShift 애플리케이션을 생성하는 방법에 대한 자세한 내용은 OpenShift.com - 소스 코드에서 애플리케이션 생성 을 참조하십시오.

사전 요구 사항

  • 애플리케이션 데이터가 올바르게 구성되어 있습니다. 자세한 내용은 JWS for OpenShift S2I process 를 참조하십시오.

프로세스

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

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

    $ oc new-project <project-name>
    Copy to Clipboard Toggle word wrap
    참고

    이전 예에서 < project-name& gt;을 생성할 프로젝트의 이름으로 바꿉니다.

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

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

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

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

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

  4. Red Hat JBoss Web Server for OpenShift 이미지를 사용하여 소스 코드에서 새 OpenShift 애플리케이션을 생성합니다.

    $ oc new-app \
     <source_code_location> \
     --image-stream=jboss-webserver61-openjdk17-tomcat10-openshift-ubi8:latest \
     --name=<openshift_application_name>
    Copy to Clipboard Toggle word wrap

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

    $ oc new-app \
     https://github.com/web-servers/tomcat-websocket-chat-quickstart.git#main \
     --image-stream=jboss-webserver61-openjdk17-tomcat10-openshift-ubi8:latest \
     --context-dir='tomcat-websocket-chat' \
     --name=jws-wsch-app
    Copy to Clipboard Toggle word wrap

    앞의 명령은 소스 코드를 이미지에 추가하고 소스 코드를 컴파일합니다. 이전 명령은 빌드 구성 및 서비스도 생성합니다.

  5. 애플리케이션을 공개하려면 다음 단계를 수행합니다.

    1. 노출할 서비스 이름을 확인하려면 다음을 수행합니다.

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

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

      service/<openshift_application_name>
      Copy to Clipboard Toggle word wrap
    2. 서비스를 노출하려면 다음을 수행하십시오.

      $ oc expose svc/<openshift_application_name>
      Copy to Clipboard Toggle word wrap

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

      route "<openshift_application_name>" exposed
      Copy to Clipboard Toggle word wrap
  6. 노출된 경로의 주소를 검색하려면 다음을 수행합니다.

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

    http://<address_of_exposed_route>/<java_application_name>

    참고

    이전 예에서 < address_of_exposed_route > 및 < java_application_name >을 배포에 적절한 값으로 바꿉니다.

2.7. tomcat/lib 디렉터리에 JAR 파일 추가

Docker를 사용하여 tomcat/lib 디렉터리에 JAR(Java Archive) 파일을 추가할 수 있습니다.

프로세스

  1. Docker에서 이미지를 시작합니다.

    docker run --network host -i -t -p 8080:8080 ImageURL
    Copy to Clipboard Toggle word wrap
  2. CONTAINER ID 를 찾습니다.

     docker ps | grep <ImageName>
    Copy to Clipboard Toggle word wrap
  3. 라이브러리를 tomcat/lib/ 디렉터리에 복사합니다.

    docker cp <yourLibrary> <CONTAINER ID>:/opt/jws-6.1/tomcat/lib/
    Copy to Clipboard Toggle word wrap
  4. 새 이미지에 변경 사항을 커밋합니다.

    docker commit <CONTAINER ID> <NEW IMAGE NAME>
    Copy to Clipboard Toggle word wrap
  5. 새 이미지 태그를 생성합니다.

    docker tag <NEW IMAGE NAME>:latest <NEW IMAGE REGISTRY URL>:<TAG>
    Copy to Clipboard Toggle word wrap
  6. 이미지를 레지스트리로 푸시합니다.

    docker push <NEW IMAGE REGISTRY URL>
    Copy to Clipboard Toggle word wrap

3장. Red Hat OpenShift용 Red Hat JBoss Web Server 미터링 레이블

Red Hat JBoss Web Server Pod에 미터링 레이블을 추가하고 OpenShift Metering Operator를 사용하여 Red Hat 서브스크립션 세부 정보를 확인할 수 있습니다.

참고
  • Operator 또는 템플릿이 배포 및 관리하는 Pod에 미터링 라벨을 추가하지 마십시오.
  • OpenShift Container Platform 버전 4.8 및 이전 버전에서 Metering Operator를 사용하여 Pod에 라벨을 적용할 수 있습니다. 버전 4.9부터는 직접 교체하지 않고 Metering Operator를 더 이상 사용할 수 없습니다.

Red Hat JBoss Web Server는 다음과 같은 미터링 라벨을 사용할 수 있습니다.

  • com.company: Red_Hat
  • rht.prod_name: Red_Hat_Runtimes
  • rht.prod_ver: 2025-Q2
  • rht.comp: JBoss_Web_Server
  • rht.comp_ver: 6.1.0
  • rht.subcomp: Tomcat 10
  • rht.subcomp_t: application

부록 A. S2I 스크립트 및 Maven

OpenShift용 Red Hat JBoss Web Server 이미지에는 S2I 스크립트 및 Maven이 포함되어 있습니다.

A.1. Maven 아티팩트 저장소 미러 및 OpenShift용 JWS

Maven 리포지토리에는 JAR(프로젝트 Java 아카이브) 파일, 라이브러리 JAR 파일, 플러그인 또는 기타 프로젝트별 아티팩트와 같은 빌드 아티팩트 및 종속 항목이 있습니다. Maven 리포지토리는 S2I(Source-to-Image) 빌드를 수행하는 동안 아티팩트를 다운로드할 수 있는 위치도 정의합니다. Maven Central 리포지토리 를 사용하는 것 외에도 일부 조직에서는 로컬 사용자 지정 리포지토리(mirror)도 배포합니다.

로컬 미러는 다음과 같은 이점을 제공합니다.

  • 지리적으로 더 빠르고 빠르게 동기화된 미러 사용 가능
  • 리포지토리 콘텐츠 제어 강화
  • 공용 서버 및 리포지토리에 의존하지 않고 다양한 팀(개발자 및 연속 통합(CI)에서 아티팩트를 공유할 수 있음
  • 빌드 시간 개선

Maven 리포지토리 관리자는 미러에 대한 로컬 캐시 역할을 할 수 있습니다. 리포지토리 관리자가 이미 배포되어 지정된 URL 위치에서 외부에서 연결할 수 있는 경우 S2I 빌드에서 이 리포지토리를 사용할 수 있습니다. 애플리케이션의 빌드 구성에 MAVEN_MIRROR_URL 환경 변수를 추가하여 내부 Maven 리포지토리를 사용할 수 있습니다.

A.1.1. 새 빌드 구성에 내부 Maven 리포지토리 사용

oc new-app 명령 또는 oc new-build 명령으로 --build-env 옵션을 지정하여 애플리케이션의 새 빌드 구성에 MAVEN_MIRROR_URL 환경 변수를 추가할 수 있습니다.

프로세스

  1. 다음 명령을 실행합니다.

    $ oc new-app \
     https://github.com/web-servers/tomcat-websocket-chat-quickstart.git#main \
     --image-stream=jboss-webserver61-openjdk17-tomcat10-openshift-ubi8:latest \
     --context-dir='tomcat-websocket-chat' \
     --build-env MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/ \
     --name=jws-wsch-app
    Copy to Clipboard Toggle word wrap
    참고

    이전 명령은 리포지토리 관리자가 이미 배포되어 있으며 http://10.0.0.1:8080/repository/internal/ 에서 연결할 수 있다고 가정합니다.

A.1.2. 기존 빌드 구성에 내부 Maven 리포지토리 사용

oc set env 명령으로 빌드 구성의 이름을 지정하여 MAVEN_MIRROR_URL 환경 변수를 애플리케이션의 기존 빌드 구성에 추가할 수 있습니다.

프로세스

  1. MAVEN_MIRROR_URL 변수가 필요한 빌드 구성을 식별합니다.

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

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

    buildconfig/jws
    Copy to Clipboard Toggle word wrap
    참고

    이전 예에서 jws는 빌드 구성의 이름입니다.

  2. MAVEN_MIRROR_URL 환경 변수를 buildconfig/jws 에 추가합니다.

    $ oc set env bc/jws MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/"
    
    buildconfig "jws" updated
    Copy to Clipboard Toggle word wrap
  3. 빌드 구성이 업데이트되었는지 확인합니다.

    $ oc set env bc/jws --list
    
    # buildconfigs jws
    MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/
    Copy to Clipboard Toggle word wrap
  4. oc start-build를 사용하여 애플리케이션의 새 빌드 예약
참고

애플리케이션 빌드 프로세스 중에 Maven 종속성은 기본 공용 리포지토리가 아닌 리포지토리 관리자에서 다운로드합니다. 빌드 프로세스가 완료되면 미러에는 빌드 프로세스 중에 검색 및 사용되는 모든 종속 항목이 포함됩니다.

A.2. OpenShift 이미지용 Red Hat JBoss Web Server에 포함된 스크립트

OpenShift용 Red Hat JBoss Web Server 이미지에는 Catalina를 실행하고 Maven을 사용하여 .war 패키지를 생성하고 배포하는 스크립트가 포함되어 있습니다.

run
Catalina(Tomcat) 실행
assemble
Maven을 사용하여 웹 애플리케이션 소스를 빌드하고 .war 파일을 생성한 다음 .war 파일을 $JWS_HOME/tomcat/webapps 디렉터리로 이동합니다.

A.3. JWS for OpenShift 데이터 소스

OpenShift용 JWS는 다음 세 가지 유형의 데이터 소스를 제공합니다.

기본 내부 데이터 소스
PostgreSQL, MySQL 및 MongoDB 데이터 소스는 기본적으로 Red Hat Registry를 통해 OpenShift에서 사용할 수 있습니다. 이러한 데이터 소스에는 이미지 스트림에 대해 추가 환경 파일을 구성할 필요가 없습니다. 데이터베이스를 검색 및 데이터 소스로 사용할 수 있도록 DB_SERVICE_PREFIX_MAPPING 환경 변수를 OpenShift 서비스 이름으로 설정하면 됩니다.
기타 내부 데이터 소스
이러한 데이터 소스는 OpenShift에서 실행되지만 Red Hat Registry를 통해 기본적으로 사용할 수 없습니다. OpenShift 보안에 추가된 환경 파일은 다른 내부 데이터 소스의 구성을 제공합니다.
외부 데이터 소스
이러한 데이터 소스는 OpenShift에서 실행되지 않습니다. OpenShift 보안에 추가된 환경 파일은 외부 데이터 소스 구성을 제공합니다.

ENV_FILES 속성

데이터 소스의 환경 변수를 프로젝트의 OpenShift 보안에 추가할 수 있습니다. ENV_FILES 속성을 사용하여 템플릿 내에서 이러한 환경 파일을 호출할 수 있습니다.

DB_SERVICE_PREFIX_MAPPING 환경 변수

데이터 소스는 특정 환경 변수의 값에 따라 자동으로 생성됩니다. DB_SERVICE_PREFIX_MAPPING 환경 변수는 데이터 소스에 대한 JNDI 매핑을 정의합니다.

DB_SERVICE_PREFIX_MAPPING 변수에 허용되는 값은 POOLNAME-DATABASETYPE=PREFIX 트립릿의 쉼표로 구분된 목록입니다. 각 트리플릿은 다음 값으로 구성됩니다.

  • POOLNAME 은 데이터 소스에서 풀 이름으로 사용됩니다.
  • DATABASETYPE 은 사용할 데이터베이스 드라이버입니다.
  • PREFIX 는 데이터 소스를 구성하는 데 사용되는 환경 변수의 이름에 있는 접두사입니다.

DB_SERVICE_PREFIX_MAPPING 환경 변수에 정의된 각 POOLNAME-DATABASETYPE=PREFIX 트리트에 대해 시작 스크립트는 이미지를 실행할 때 실행되는 별도의 데이터 소스를 생성합니다.

A.4. OpenShift 호환 환경 변수용 JWS

S2I(Source-to-Image) 빌드 명령을 사용하여 환경 변수를 포함하여 빌드 구성을 수정할 수 있습니다. 자세한 내용은 Maven 아티팩트 리포지토리 미러 및 JWS for OpenShift를 참조하십시오.

다음 표에는 OpenShift 이미지용 Red Hat JBoss Web Server에 유효한 환경 변수가 나열되어 있습니다.

Expand
변수 이름표시 이름설명예제 값

ARTIFACT_DIR

해당 없음

이 디렉터리의 .war,.ear .jar 파일이 배포 디렉터리에 복사됩니다.

대상

APPLICATION_NAME

애플리케이션 이름

애플리케이션 이름

jws-app

CONTEXT_DIR

컨텍스트 디렉터리

빌드할 Git 프로젝트 내의 경로; 루트 프로젝트 디렉터리에는 비어 있음

Tomcat-websocket-chat

GITHUB_WEBHOOK_SECRET

GitHub Webhook 시크릿

GitHub 트리거 시크릿

표현식: [a-zA-Z0-9]{8}

GENERIC_WEBHOOK_SECRET

일반 Webhook 시크릿

일반 빌드 트리거 시크릿

표현식: [a-zA-Z0-9]{8}

HOSTNAME_HTTP

사용자 정의 HTTP 경로 호스트 이름

http 서비스 경로에 대한 사용자 정의 호스트 이름입니다. 기본 호스트 이름에 대해 비워 둡니다.

<application-name>-<project>.<default-domain-suffix>

HOSTNAME_HTTPS

사용자 정의 HTTPS 경로 호스트 이름

https 서비스 경로에 대한 사용자 정의 호스트 이름입니다. 기본 호스트 이름에 대해 비워 둡니다.

<application-name>-<project>.<default-domain-suffix>

IMAGE_STREAM_NAMESPACE

이미지 스트림 네임스페이스

Red Hat Middleware 이미지의 ImageStreams가 설치된 네임스페이스

openshift

JWS_HTTPS_CERTIFICATE

인증서 파일 이름

인증서 파일의 이름

rsa-cert.pem

JWS_HTTPS_CERTIFICATE_CHAIN

인증서 체인 파일 이름

인증서 체인 파일의 이름

ca-chain.cert.pem

JWS_HTTPS_CERTIFICATE_DIR

인증서 디렉터리 이름

인증서가 저장된 디렉터리의 이름

인증서

JWS_HTTPS_CERTIFICATE_KEY

인증서 키 파일 이름

인증서 키 파일의 이름

rsa-key.pem

JWS_HTTPS_CERTIFICATE_PASSWORD

인증서 암호

인증서 암호

P5ssw0rd

SOURCE_REPOSITORY_URL

Git 리포지토리 URL

애플리케이션용 Git 소스 URI

https://github.com/web-servers/tomcat-websocket-chat-quickstart.git

SOURCE_REPOSITORY_REFERENCE

Git 참조

Git 분기/태그 참조

1.2

IMAGE_STREAM_NAMESPACE

이미지 스트림 네임스페이스

Red Hat Middleware 이미지의 ImageStreams가 설치된 네임스페이스

openshift

MAVEN_MIRROR_URL

Maven 미러 URL

구성할 Maven 미러/repository 관리자의 URL입니다.

http://10.0.0.1:8080/repository/internal/

부록 B. OpenShift용 JWS의 브레이브

다음 환경 변수를 정의하여 관련 Catalina 컨테이너에 대한 요청 처리 파이프라인에 연결 구성 요소를 삽입할 수 있습니다.

Expand
변수 이름설명예제 값기본값

ENABLE_ACCESS_LOG

Access Log Valve를 활성화하여 표준 출력 채널에 액세스 메시지를 기록합니다.

true

false

부록 C. OpenShift 로그 확인

oc logs 명령을 사용하여 OpenShift 로그 또는 콘솔이 실행 중인 컨테이너에 제공하는 로그를 볼 수 있습니다.

프로세스

  • 다음 명령을 실행합니다.

    $ oc logs -f <pod_name> <container_name>
    Copy to Clipboard Toggle word wrap
    참고

    이전 명령에서 < pod_name > 및 < container_name >을 배포에 적절한 값으로 바꿉니다.

    액세스 로그는 /opt/jws-6.1/tomcat/logs/ 디렉터리에 저장됩니다.

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat