2.3.7. 외부 아티팩트
바이너리 파일을 소스 리포지토리에 저장하지 않는 것이 좋습니다. 따라서 빌드 프로세스 중 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
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
를 사용하여 명시적으로 제공(수동으로 트리거하는 빌드 전용)