Red Hat Training
A Red Hat training course is available for Red Hat JBoss Web Server
4장. reference
4.1. S2I(Source-to-Image)
OpenShift용 Red Hat JBoss Web Server 이미지에는 S2I 스크립트 및 Maven이 포함되어 있습니다.
4.1.1. OpenShift용 JWS와 함께 maven artifact 저장소 사용
Maven 리포지토리에는 프로젝트 ScanSetting, 라이브러리 ScanSetting, 플러그인 또는 기타 프로젝트별 아티팩트와 같은 빌드 아티팩트 및 종속 항목이 있습니다. 또한 S2I 빌드를 수행하는 동안 아티팩트를 다운로드할 위치도 정의합니다. Maven Central Repository 사용과 함께 일부 조직에서는 로컬 사용자 지정 리포지토리(미러)도 배포합니다.
로컬 미러를 사용하는 이점은 다음과 같습니다.
- 지리적으로 더 빠르고 빠르게 동기화된 미러를 사용할 수 있습니다.
- 리포지토리 콘텐츠를 보다 효과적으로 제어합니다.
- 공용 서버 및 리포지토리에 의존하지 않고도 다양한 팀(개발자, CI) 간에 아티팩트를 공유할 수 있습니다.
- 빌드 시간 개선
Maven 리포지토리 관리자는 미러에 대한 로컬 캐시 역할을 할 수 있습니다. 리포지토리 관리자가 http://10.0.0.1:8080/repository/internal/ 에 이미 배포되어 있고 외부로 연결할 수 있다고 가정하면 S2I 빌드에서 이 리포지토리를 사용할 수 있습니다. 내부 Maven 리포지토리를 사용하려면 MAVEN_MIRROR_URL 환경 변수를 애플리케이션의 빌드 구성에 추가합니다.
새 빌드 구성의 경우 oc new- app 또는 와 함께 oc new -build--build-env 옵션을 사용합니다.
$ oc new-app \ https://github.com/jboss-openshift/openshift-quickstarts.git#master \ --image-stream=jboss-webserver31-tomcat8-openshift \ --context-dir='tomcat-websocket-chat' \ --build-env MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/ \ --name=jws-wsch-app
기존 빌드 구성의 경우:
MAVEN_MIRROR_URL변수가 필요한 빌드 구성을 확인합니다.$ oc get bc -o name buildconfig/jwsMAVEN_MIRROR_URL환경 변수를buildconfig/jws에 추가합니다.$ oc env bc/jws MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/" buildconfig "jws" updated빌드 구성이 업데이트되었는지 확인합니다.
$ oc env bc/jws --list # buildconfigs jws MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/-
oc start-build를 사용하여 애플리케이션의 새 빌드 예약
애플리케이션 빌드 중에 Maven 종속성은 기본 공용 리포지토리 대신 리포지토리 관리자에서 다운로드합니다. 빌드가 완료되면 미러는 빌드 중에 검색된 모든 종속성을 포함합니다.
4.1.2. OpenShift 이미지용 Red Hat JBoss Web Server에 포함된 스크립트
run- runs catalina (Tomcat)
assemble-
Maven을 사용하여 소스를 빌드하고 패키지(
.war)를 생성하여$JWS_HOME/webapps디렉터리로 이동합니다.
4.1.3. OpenShift 호환 환경 변수용 JWS
빌드 구성은 S2I(Source-to-Image) 빌드 명령에 환경 변수를 포함하여 수정할 수 있습니다( 4.1.1절. “OpenShift용 JWS와 함께 maven artifact 저장소 사용”참조). OpenShift용 Red Hat JBoss Web Server의 유효한 환경 변수는 다음과 같습니다.
| 변수 이름 | 설명 | 값 예 :leveloffset: +3 |
| ARTIFACT_DIR |
| 대상 |
| HTTP_PROXY_HOST | Maven이 사용할 HTTP 프록시의 호스트 이름 또는 IP 주소입니다. | 192.168.1.1 |
| HTTP_PROXY_PORT | Maven이 사용할 HTTP 프록시의 TCP 포트입니다. | 8080 |
| HTTP_PROXY_USERNAME |
| myusername |
| HTTP_PROXY_PASSWORD |
| mypassword |
| HTTP_PROXY_NONPROXYHOSTS | 제공된 경우 구성된 HTTP 프록시는 이러한 호스트(콤마로 구분된 호스트, IP 주소 또는 도메인) 목록을 무시합니다. | *.example.net,some.example.org |
| MAVEN_ARGS | 빌드 중 Maven에 제공되는 인수를 덮어씁니다. | -e -Popenshift -DskipTests -Dcom.redhat.xpaas.repo.redhatga package |
| MAVEN_ARGS_APPEND | 빌드 중에 Maven에 제공된 사용자 인수를 추가합니다. | -Dfoo=bar |
| MAVEN_MIRROR_URL | 구성할 Maven 미러/repository 관리자의 URL입니다. | http://10.0.0.1:8080/repository/internal/ |
| MAVEN_CLEAR_REPO | 선택적으로 빌드 후 로컬 Maven 리포지토리를 지웁니다. | true :leveloffset: 3 |