4.2. OpenShift S2I(Source-to-Image) 프로세스 사용
OpenShift 이미지에 대한 JWS를 실행하고 구성하려면 애플리케이션 템플릿 매개 변수 및 환경 변수와 함께 OpenShift S2I 프로세스를 사용합니다.
OpenShift 이미지의 JWS 프로세스는 다음과 같이 작동합니다.
configuration/source 디렉터리에 Maven settings.xml 파일이 있으면 새 이미지의$HOME/.m2/로 이동합니다.Maven 및 Maven settings.xml 파일에 대한 자세한 내용은 Apache Maven Project 웹 사이트를 참조하십시오.
소스 리포지토리에 pom.xml 파일이 있는 경우
$MAVEN_ARGS환경 변수의 콘텐츠를 사용하여 Maven 빌드가 트리거됩니다.기본적으로
패키지목표는 건너뛰기 테스트(-DskipTests)와 Red Hat GA 리포지토리(-Dcom.redhat.xpaas.repo.redhatga) 활성화를 포함하여openshift프로필과 함께 사용됩니다.Maven 빌드에 성공한 결과는
/opt/webserver/webapps/로 복사됩니다. 여기에는$ARTIFACT_DIR환경 변수로 지정된 소스 디렉토리의 모든 WAR 파일이 포함됩니다.$ARTIFACT_DIR의 기본값은target/디렉토리입니다.MAVEN_ARGS_APPEND환경 변수를 사용하여 Maven 인수를 수정합니다.-
deployments/소스 디렉터리의 모든 WAR 파일이/opt/webserver/webapps/로 복사됩니다. -
configuration/source 디렉터리의 모든 파일이/opt/webserver/conf/로 복사됩니다( Maven settings.xml 파일 제외). lib/소스 디렉토리의 모든 파일이/opt/webserver/lib/로 복사됩니다.참고사용자 지정 Tomcat 구성 파일을 사용하려면 파일 이름이 일반 Tomcat 설치와 동일해야 합니다. 예: context.xml 및 server.xml.
사용자 지정 Maven 아티팩트 저장소 미러를 사용하도록 S2I 프로세스를 구성하는 방법은 Artifact Repository Mirrors 섹션을 참조하십시오.
4.2.1. 기존 maven 바이너리를 사용하여 OpenShift 애플리케이션용 JWS 생성 링크 복사링크가 클립보드에 복사되었습니다!
기존 애플리케이션은 oc start-build 명령을 사용하여 OpenShift에 배포됩니다.
사전 요구 사항: OpenShift용 JWS에 배포할 애플리케이션의 기존 .war,.ear 또는 .jar 입니다.
로컬 파일 시스템의 디렉터리 구조를 준비합니다.
애플리케이션에 필요한 콘텐츠가 바이너리에 포함되어 있지 않은 소스 디렉터리를 생성합니다(필요한 경우 OpenShift S2I(Source-to-Image) 프로세스 사용을참조), 하위 디렉터리
배포/:mkdir -p <build_dir>/deployments
$ mkdir -p <build_dir>/deploymentsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 바이너리(
.war,.ear,.jar)를deployments/에 복사합니다.cp /path/to/binary/<filenames_with_extensions> <build_dir>/deployments/
$ cp /path/to/binary/<filenames_with_extensions> <build_dir>/deployments/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고소스 디렉터리의
deployments/하위 디렉터리에 있는 애플리케이션 아카이브는 OpenShift에 빌드되는 이미지의$JWS_HOME/webapps/디렉터리에 복사됩니다. 애플리케이션을 배포하려면 웹 애플리케이션 데이터가 포함된 디렉터리 계층을 올바르게 구조화해야 합니다( 4.2절. “OpenShift S2I(Source-to-Image) 프로세스 사용”참조).OpenShift 인스턴스에 로그인합니다.
oc login <url>
$ oc login <url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 새 프로젝트를 생성합니다.
oc new-project <project-name>
$ oc new-project <project-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get를 사용하여 애플리케이션에 사용할 OpenShift 이미지 스트림의 JWS를 확인하는 것은 -n openshift입니다.oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
$ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' ' jboss-webserver50-tomcat9-openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고-n openshift는 사용할 프로젝트를 지정합니다.oc.get는 openshift 프로젝트에서 이미지 스트림 리소스(임시)를 검색(가져오기)하는 -nopenshift입니다이미지 스트림 및 애플리케이션 이름을 지정하여 새 빌드 구성을 생성합니다.
oc new-build --binary=true \ --image-stream=jboss-webserver50-tomcat9-openshift \ --name=<my-jws-on-openshift-app>
$ oc new-build --binary=true \ --image-stream=jboss-webserver50-tomcat9-openshift \ --name=<my-jws-on-openshift-app>Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift에서 이전에 생성한 소스 디렉터리를 사용하여 OpenShift 이미지 빌드의 바이너리 입력을 위해 사용하도록 지시합니다.
oc start-build <my-jws-on-openshift-app> --from-dir=./<build_dir> --follow
$ oc start-build <my-jws-on-openshift-app> --from-dir=./<build_dir> --followCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지를 기반으로 새 OpenShift 애플리케이션을 생성합니다.
oc new-app <my-jws-on-openshift-app>
$ oc new-app <my-jws-on-openshift-app>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자가 애플리케이션에 액세스할 수 있도록 서비스를 노출합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노출된 경로의 주소를 검색합니다.
oc get routes --no-headers -o custom-columns='host:spec.host' my-jws-on-openshift-app
oc get routes --no-headers -o custom-columns='host:spec.host' my-jws-on-openshift-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 브라우저에서 애플리케이션에 액세스하려면 http:// <address_of_exposed_route > / < my-war-ear-jar-filename- without-extension>
4.2.2. 예: 기존 maven 바이너리를 사용하여 OpenShift 애플리케이션용 JWS 생성 링크 복사링크가 클립보드에 복사되었습니다!
아래 예제에서는 4.2.1절. “기존 maven 바이너리를 사용하여 OpenShift 애플리케이션용 JWS 생성” 의 절차를 사용하여 tomcat-websocket-chat 빠른 시작을 사용합니다.
4.2.2.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
WAR 애플리케이션 아카이브를 가져오거나 애플리케이션을 로컬로 빌드합니다.
소스 코드를 복제합니다.
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 애플리케이션을 빌드합니다.
cd openshift-quickstarts/tomcat-websocket-chat/
$ cd openshift-quickstarts/tomcat-websocket-chat/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
로컬 파일 시스템의 디렉터리 구조를 준비합니다.
로컬 파일 시스템 및
deployments/하위 디렉터리에서 바이너리 빌드의 소스 디렉터리를 생성합니다. WAR 아카이브를deployments/에 복사합니다.ls
[tomcat-websocket-chat]$ ls pom.xml README.md src/ target/Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir -p ocp/deployments
$ mkdir -p ocp/deploymentsCopy to Clipboard Copied! Toggle word wrap Toggle overflow cp target/websocket-chat.war ocp/deployments/
$ cp target/websocket-chat.war ocp/deployments/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.2.2. OpenShift에서 예제 애플리케이션 설정 링크 복사링크가 클립보드에 복사되었습니다!
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 oc get를 사용하여 애플리케이션에 사용할 OpenShift 이미지 스트림의 JWS를 확인하는 것은 -n openshift입니다.oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
$ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' ' jboss-webserver50-tomcat9-openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지 스트림 및 애플리케이션 이름을 지정하여 새 빌드 구성을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 바이너리 빌드를 시작합니다. OpenShift에서 OpenShift 이미지 빌드의 바이너리 입력에 소스 디렉터리를 사용하도록 지시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지를 기반으로 새 OpenShift 애플리케이션을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자가 애플리케이션에 액세스할 수 있도록 서비스를 노출합니다.
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-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 브라우저에서 애플리케이션에 액세스합니다. http:// <address_of_exposed_route>/websocket-chat
4.2.3. 소스 코드에서 OpenShift 애플리케이션용 JWS 생성 링크 복사링크가 클립보드에 복사되었습니다!
소스 코드에서 새 OpenShift 애플리케이션을 생성하는 방법에 대한 자세한 내용은 OpenShift.com - 소스 코드에서 애플리케이션 생성을 참조하십시오.
진행하기 전에 애플리케이션의 데이터가 올바르게 구성되어 있는지 확인합니다( 4.2절. “OpenShift S2I(Source-to-Image) 프로세스 사용”참조).
OpenShift 인스턴스에 로그인합니다.
oc login <url>
$ oc login <url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 새 프로젝트를 생성합니다.
oc new-project <project-name>
$ oc new-project <project-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get를 사용하여 애플리케이션에 사용할 OpenShift 이미지 스트림의 JWS를 확인하는 것은 -n openshift입니다.oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
$ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' ' jboss-webserver50-tomcat9-openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat JBoss Web Server for OpenShift 이미지를 사용하여 소스 코드에서 새 OpenShift 애플리케이션을 생성하고
--image-stream옵션을 사용합니다.oc new-app \ <source_code_location> \ --image-stream=jboss-webserver50-tomcat9-openshift \ --name=<openshift_application_name>
$ oc new-app \ <source_code_location> \ --image-stream=jboss-webserver50-tomcat9-openshift \ --name=<openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
oc new-app \ https://github.com/jboss-openshift/openshift-quickstarts.git#master \ --image-stream=jboss-webserver50-tomcat9-openshift \ --context-dir='tomcat-websocket-chat' \ --name=jws-wsch-app
$ oc new-app \ https://github.com/jboss-openshift/openshift-quickstarts.git#master \ --image-stream=jboss-webserver50-tomcat9-openshift \ --context-dir='tomcat-websocket-chat' \ --name=jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 소스 코드가 이미지에 추가되고 소스 코드가 컴파일됩니다. 빌드 구성 및 서비스도 생성됩니다.
애플리케이션을 공개하려면 다음을 수행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노출된 경로의 주소를 검색하려면 다음을 수행합니다.
oc get routes --no-headers -o custom-columns='host:spec.host' <openshift_application_name>
oc get routes --no-headers -o custom-columns='host:spec.host' <openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 브라우저에서 애플리케이션에 액세스하려면 http:// <address_of_exposed_route> / <java_application_name>