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