8.3.7. 외부 Artifacts 사용
바이너리 파일을 소스 리포지토리에 저장하지 않는 것이 좋습니다. 따라서 빌드 프로세스 중 추가 파일(예: Java .jar 종속성)을 가져오는 빌드를 정의해야 합니다. 이 작업을 수행하는 방법은 사용 중인 빌드 전략에 따라 다릅니다.
소스
빌드 전략의 경우 assemble 스크립트에 적절한 쉘 명령을 배치해야 합니다.
.s2i/bin/assemble 파일
#!/bin/sh APP_VERSION=1.0 wget http://repository.example.com/app/app-$APP_VERSION.jar -O app.jar
.s2i/bin/run 파일
#!/bin/sh exec java -jar app.jar
소스 빌드에서 사용하는 assemble 및 run 스크립트를 제어하는 방법에 대한 자세한 내용은 빌더 이미지 스크립트 덮어쓰기 를 참조하십시오.
Docker
빌드 전략의 경우 Dockerfile 을 수정하고 RUN
명령으로 쉘 명령을 호출해야 합니다.
Dockerfile발췌 내용
FROM jboss/base-jdk:8 ENV APP_VERSION 1.0 RUN wget http://repository.example.com/app/app-$APP_VERSION.jar -O app.jar EXPOSE 8080 CMD [ "java", "-jar", "app.jar" ]
실제로 Dockerfile 또는 assemble 스크립트를 업데이트하는 대신 BuildConfig
에 정의된 환경 변수를 사용하여 다운로드할 특정 파일을 사용자 지정할 수 있도록 파일 위치에 대한 환경 변수를 사용할 수 있습니다.
다음과 같이 환경 변수를 정의하는 다양한 방법 중에서 선택할 수 있습니다.
- .s2i/environment 파일 사용 (소스 빌드 전략 전용)
-
BuildConfig
에 설정 -
oc start-build --env
를 사용하여 명시적으로 제공 (수동으로 트리거되는 빌드만 해당)