8.5. 빌드 전략 옵션
8.5.1. S2I(Source-to-Image) 전략 옵션
다음 옵션은 S2I 빌드 전략에 따라 다릅니다.
8.5.1.1. force Pull
기본적으로 빌드 구성에 지정된 빌더 이미지가 노드에서 로컬로 사용 가능한 경우 해당 이미지가 사용됩니다. 그러나 로컬 이미지를 재정의하고 이미지 스트림이 가리키는 레지스트리에서 새로 고침하려면 forcePull
플래그를 true 로 설정하여 BuildConfig
를 생성합니다.
strategy: sourceStrategy: from: kind: "ImageStreamTag" name: "builder-image:latest" 1 forcePull: true 2
8.5.1.2. 증분 빌드
S2I는 증분 빌드를 수행할 수 있으므로 이전에 빌드한 이미지의 아티팩트를 재사용할 수 있습니다. 증분 빌드를 생성하려면 전략 정의를 다음과 같이 수정하여 BuildConfig
를 생성합니다.
strategy: sourceStrategy: from: kind: "ImageStreamTag" name: "incremental-image:latest" 1 incremental: true 2
증분 빌드를 지원하는 빌더 이미지를 생성하는 방법에 대한 자세한 내용은 S2I 요구 사항 주제를 참조하십시오.
8.5.1.3. 빌더 이미지 스크립트 덮어쓰기
두 가지 방법 중 하나로 빌더 이미지에서 제공하는 assemble, run, save-artifacts S2I 스크립트 를 덮어쓸 수 있습니다. 다음 중 하나를 수행합니다.
- 애플리케이션 소스 리포지토리의 .s2i/bin 디렉터리에 assemble, run, 및/또는 save-artifacts 스크립트를 제공합니다.
- 스크립트가 포함된 디렉터리의 URL을 전략 정의의 일부로 제공합니다. 예를 들면 다음과 같습니다.
strategy:
sourceStrategy:
from:
kind: "ImageStreamTag"
name: "builder-image:latest"
scripts: "http://somehost.com/scripts_directory" 1
- 1
- 이 경로에는 , assemble 및 save-artifacts 가 추가됩니다. 일부 또는 모든 스크립트가 발견되면 이미지에 제공된 동일한 이름의 스크립트 대신 사용됩니다.
스크립트
URL에 있는 파일은 소스 리포지토리의 .s2i/bin 에 있는 파일보다 우선합니다. S2I 스크립트 사용 방법에 대한 자세한 내용은 S2I 요구 사항 주제 및 S2I 설명서 를 참조하십시오.
8.5.1.4. 환경 변수
소스 빌드 프로세스 및 결과 이미지에서 환경 변수를 사용할 수 있도록 하는 방법에는 두 가지가 있습니다. 환경 파일 및 BuildConfig 환경 값. 제공되는 변수는 빌드 프로세스 중 출력 이미지에 제공됩니다.
8.5.1.4.1. 환경 파일
소스 빌드를 사용하면 소스 리포지토리의 .s2i/environment 파일에 지정하여 애플리케이션 내에서 환경 값(행당 하나씩)을 설정할 수 있습니다. 이 파일에 지정된 환경 변수는 빌드 프로세스 중 출력 이미지에 제공됩니다. 지원되는 환경 변수의 전체 목록은 각 이미지의 설명서에서 확인할 수 있습니다.
소스 리포지토리에 .s2i/environment 파일을 제공하는 경우 S2I는 빌드 중에 이 파일을 읽습니다. 이를 통해 assemble 스크립트에서 이러한 변수를 사용할 수 있으므로 빌드 동작을 사용자 지정할 수 있습니다.
예를 들어 Rails 애플리케이션의 자산 컴파일을 비활성화하려면 .s2i/environment 파일에 DISABLE_ASSET_COMPILATION=true
를 추가하여 빌드 중에 자산 컴파일을 건너뛸 수 있습니다.
빌드 외에 지정된 환경 변수도 실행 중인 애플리케이션 자체에서 사용할 수 있습니다. 예를 들어 RAILS_ENV=development
를 .s2i/environment 파일에 추가하여 Rails 애플리케이션이 production
대신 개발
모드에서 시작되도록 할 수 있습니다.
8.5.1.4.2. BuildConfig 환경
BuildConfig
의 sourceStrategy
정의에 환경 변수를 추가할 수 있습니다. 여기에 정의된 환경 변수는 assemble 스크립트 실행 중에 표시되고 출력 이미지에 정의되어 run 스크립트 및 애플리케이션 코드에서도 사용할 수 있습니다.
예를 들어 Rails 애플리케이션의 자산 컴파일을 비활성화합니다.
sourceStrategy: ... env: - name: "DISABLE_ASSET_COMPILATION" value: "true"
빌드 환경 섹션에서는 고급 지침을 제공합니다.
oc set env
명령을 사용하여 BuildConfig
에 정의된 환경 변수도 관리할 수 있습니다.
8.5.1.5. 웹 콘솔을 통한 시크릿 추가
프라이빗 리포지토리에 액세스할 수 있도록 빌드 구성에 보안을 추가하려면 다음을 수행합니다.
- 새 OpenShift Container Platform 프로젝트를 생성합니다.
- 프라이빗 소스 코드 리포지토리에 액세스하기 위한 인증 정보가 포함된 시크릿을 생성합니다.
- S 2I(Source-to-Image) 빌드 구성을 생성합니다.
-
빌드 구성 편집기 페이지 또는 웹 콘솔 의
빌더 이미지에서 앱 생성
페이지에서 소스 보안을 설정합니다. - 저장 버튼을 클릭합니다.
8.5.1.5.1. 가져오기 및 푸시 활성화
빌드 구성에서 Pull Secret
을 설정하여 프라이빗 레지스트리로 가져오고 Push Secret
을 설정하여 내보낼 수 있습니다.
8.5.1.6. 소스 파일 무시
이미지로의 소스는 무시해야 하는 파일 패턴 목록이 포함된 .s2iignore
파일을 지원합니다. .s2iignore
파일에 있는 패턴과 일치하는 다양한 입력 소스에서 제공하는 빌드 작업 디렉터리의 파일은 assemble
스크립트에서 사용할 수 없습니다.
.s2iignore
파일 형식에 대한 자세한 내용은 S2I(Source -to-Image) 설명서를 참조하십시오.