2.5. 기존 Maven 바이너리를 사용하여 OpenShift 애플리케이션용 JWS 생성
기존 Maven 바이너리를 사용하여 OpenShift 애플리케이션용 JWS를 생성할 수 있습니다. oc start-build 명령을 사용하여 OpenShift에 기존 애플리케이션을 배포할 수 있습니다.
다음 절차에서는 tomcat-websocket-chat 빠른 시작 예제를 기반으로 하는 예제 애플리케이션을 생성하는 방법을 설명합니다.
사전 요구 사항
OpenShift용 JWS에 배포하거나 로컬에 애플리케이션을 빌드한 애플리케이션에 대한 기존
.war,.ear,.jar파일이 있습니다.예를 들어
tomcat-websocket-chat애플리케이션을 로컬로 빌드하려면 다음 단계를 수행합니다.소스 코드를 복제하려면 다음 명령을 입력합니다.
git clone https://github.com/jboss-openshift/openshift-quickstarts.git
$ git clone https://github.com/jboss-openshift/openshift-quickstarts.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat JBoss Middleware Maven 리포지토리 구성에 설명된 대로 Red Hat JBoss Middleware Maven 리포지토리를 구성합니다.
Maven 리포지토리에 대한 자세한 내용은 Red Hat JBoss Enerprise Maven Repository 웹 페이지를 참조하십시오.
애플리케이션을 빌드하려면 다음 명령을 입력합니다.
cd openshift-quickstarts/tomcat-websocket-chat/ mvn clean package
$ cd openshift-quickstarts/tomcat-websocket-chat/ $ mvn clean packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위 명령은 다음 출력을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
절차
로컬 파일 시스템에서 바이너리 빌드 및
배포하위 디렉터리를 위한 소스 디렉터리를 생성합니다.예를 들어
tomcat-websocket-chat애플리케이션의/ocp소스 디렉터리 및/deployments하위 디렉터리를 생성하려면 다음 명령을 입력합니다.cd openshift-quickstarts/tomcat-websocket-chat/ mkdir -p ocp/deployments
$ cd openshift-quickstarts/tomcat-websocket-chat/ $ mkdir -p ocp/deploymentsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고소스 디렉터리에 Maven 바이너리에 포함되지 않은 애플리케이션에 필요한 모든 콘텐츠가 포함될 수 있습니다. 자세한 내용은 OpenShift S2I 프로세스용 JWS 에서 참조하십시오.
.war,.ear,.jar바이너리 파일을deployments하위 디렉터리에 복사합니다.예를 들어 tomcat-websocket-chat 애플리케이션의
.war파일을 복사하려면 다음 명령을 입력합니다.cp target/websocket-chat.war ocp/deployments/
$ cp target/websocket-chat.war ocp/deployments/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이전 예에서
target/websocket-chat.war는 복사하려는 바이너리 파일의 경로입니다.소스 디렉터리의
배포하위 디렉터리에 있는 애플리케이션 아카이브는 OpenShift를 기반으로 빌드된 이미지의$JWS_HOME/tomcat/webapps/디렉터리에 복사됩니다. 애플리케이션을 성공적으로 배포할 수 있도록 하려면 웹 애플리케이션 데이터가 포함된 디렉터리 계층이 올바르게 구성되어 있는지 확인해야 합니다. 자세한 내용은 OpenShift S2I 프로세스용 JWS 에서 참조하십시오.OpenShift 인스턴스에 로그인합니다.
oc login <url>
$ oc login <url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 새 프로젝트를 생성합니다.
예를 들면 다음과 같습니다.
oc new-project jws-bin-demo
$ oc new-project jws-bin-demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위 예제에서
jws-bin-demo는 생성할 프로젝트의 이름입니다.애플리케이션에 사용할 OpenShift 이미지 스트림의 JWS를 확인합니다.
oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
$ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' 'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위 명령은 다음 유형의 출력을 생성합니다.
jboss-webserver56-openjdk8-tomcat9-openshift-ubi8
jboss-webserver56-openjdk8-tomcat9-openshift-ubi8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고n openshift옵션은 사용할 프로젝트를 지정합니다.oc get is -n openshift명령은openshift프로젝트에서 이미지 스트림 리소스를 가져옵니다.새 빌드 구성을 생성하고 이미지 스트림 및 애플리케이션 이름을 지정해야 합니다.
예를 들어, tomcat-websocket-chat 애플리케이션에 대한 새 빌드 구성을 생성하려면 다음을 수행합니다.
oc new-build --binary=true \ --image-stream=jboss-webserver56-openjdk8-tomcat9-openshift-ubi8:latest\*
$ oc new-build --binary=true \ --image-stream=jboss-webserver56-openjdk8-tomcat9-openshift-ubi8:latest\* --name=jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위 예제에서
jws-wsch-app은 OpenShift 애플리케이션용 JWS의 이름입니다.위 명령은 다음 유형의 출력을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 바이너리 빌드를 시작합니다.
예를 들면 다음과 같습니다.
oc start-build jws-wsch-app --from-dir=./ocp --follow
$ oc start-build jws-wsch-app --from-dir=./ocp --followCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위 예제에서
jws-wsch-app은 OpenShift 애플리케이션용 JWS의 이름이며ocp는 소스 디렉터리의 이름입니다.이전 명령은 OpenShift 이미지 빌드의 바이너리 입력을 위해 생성한 소스 디렉터리를 사용하도록 OpenShift에 지시합니다.
위 명령은 다음 유형의 출력을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지를 기반으로 새 OpenShift 애플리케이션을 생성합니다.
예를 들면 다음과 같습니다.
oc new-app jws-wsch-app
$ oc new-app jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위 예제에서
jws-wsch-app은 OpenShift 애플리케이션용 JWS의 이름입니다.위 명령은 다음 유형의 출력을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자가 애플리케이션에 액세스할 수 있도록 서비스를 노출합니다.
예를 들어
jws-wsch-app애플리케이션 예제를 액세스하려면 다음 단계를 수행합니다.노출할 서비스 이름을 확인합니다.
oc get svc -o name
$ oc get svc -o nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위 명령은 다음 유형의 출력을 생성합니다.
service/jws-wsch-app
service/jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스를 노출합니다.
oc expose svc/jws-wsch-app
$ oc expose svc/jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위 명령은 다음 유형의 출력을 생성합니다.
route "jws-wsch-app" exposed
route "jws-wsch-app" exposedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
노출된 경로의 주소를 검색합니다.
oc get routes --no-headers -o custom-columns='host:spec.host' jws-wsch-app
oc get routes --no-headers -o custom-columns='host:spec.host' jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 웹 브라우저를 열고 URL을 입력하여 애플리케이션에 액세스합니다.
예를 들어 예제
jws-wsch-app애플리케이션에 액세스하려면 다음 URL을 입력합니다.\http://<address_of_exposed_route>/websocket-chat참고이전 예에서 <
address_of_exposed_route>를 배포에 적합한 값으로 바꿉니다.