8.3.5. 바이너리(로컬) 소스
로컬 파일 시스템의 콘텐츠를 빌더로 스트리밍하는 것을 Binary
빌드라고 합니다. 이러한 빌드의 경우 BuildConfig.spec.source.type
의 해당 값은 Binary
입니다.
이 소스 유형은 oc start-build
를 사용할 때만 활용하므로 고유합니다.
바이너리 유형 빌드에서는 로컬 파일 시스템에서 콘텐츠를 스트리밍해야 하므로 바이너리 파일을 제공할 수 없으므로 바이너리 유형 빌드(예: 이미지 변경 트리거를 통해)를 자동으로 트리거할 수 없습니다. 마찬가지로 웹 콘솔에서 바이너리 유형 빌드를 시작할 수 없습니다.
바이너리 빌드를 사용하려면 다음 옵션 중 하나를 사용하여 oc start-build
를 호출합니다.
-
--from-file
: 지정한 파일의 내용은 빌더에 바이너리 스트림으로 전송됩니다. 파일에 URL을 지정할 수도 있습니다. 그러면 빌더에서 빌드 컨텍스트 상단에 있는 것과 동일한 이름으로 파일에 데이터를 저장합니다. -
--from-dir
및--from-repo
: 콘텐츠가 보관되어 빌더에 바이너리 스트림으로 전송됩니다. 그러면 빌더가 빌드 컨텍스트 디렉터리 내에서 아카이브 콘텐츠를 추출합니다.--from-dir
을 사용하면 추출될 아카이브에 URL을 지정할 수도 있습니다. -
--from-archive
: 지정한 아카이브가 빌더로 전송되어 빌드 컨텍스트 디렉터리 내에서 추출됩니다. 이 옵션은--from-dir
과 동일하게 작동합니다. 이러한 옵션에 대한 인수가 디렉터리인 경우 먼저 호스트에서 아카이브가 생성됩니다.
위의 각 사례에서 다음을 수행합니다.
-
BuildConfig
에 이미Binary
소스 유형이 정의되어 있는 경우 효과적으로 무시되고 클라이언트가 전송하는 내용으로 대체됩니다. -
BuildConfig
에Git
소스 유형이 정의되어 있는 경우Binary
및Git
을 함께 사용할 수 없으므로 해당 BuildConfig가 동적으로 비활성화되고 빌더에 제공하는 바이너리 스트림의 데이터에 우선순위가 지정됩니다.
HTTP 또는 HTTPS 스키마를 사용하여 파일 이름 대신 URL을 --from-file
및 --from-archive
로 전달할 수 있습니다. URL과 함께 --from-file
을 사용하는 경우 빌더 이미지의 파일 이름은 웹 서버에서 전송한 Content-Disposition
헤더 또는 헤더가 없는 경우 URL 경로의 마지막 구성 요소에 따라 결정됩니다. 지원되는 인증 형식이 없는 경우 사용자 정의 TLS 인증서를 사용하거나 인증서 검증 작업을 비활성화할 수 없습니다.
oc new-build --binary=true
를 사용하면 명령에서 바이너리 빌드와 관련된 제한을 적용합니다. 생성된 BuildConfig
에는 소스 유형이 Binary
이므로 이 BuildConfig
에 대한 빌드를 실행하는 유일한 방법은 --from
옵션 중 하나와 함께 oc start-build
를 사용하여 필수 바이너리 데이터를 제공하는 것입니다.
dockerfile 및
contextDir
소스 옵션에 는 바이너리 빌드에서 특별한 의미가 있습니다.
Dockerfile
은 바이너리 빌드 소스와 함께 사용할 수 있습니다. dockerfile
을 사용하고 바이너리 스트림이 아카이브인 경우 해당 콘텐츠는 아카이브의 모든 Dockerfile에 대한 대체 Dockerfile 역할을 합니다. dockerfile
을 --from-file
인수와 함께 사용하고 파일 인수의 이름이 dockerfile
이면 dockerfile
의 값이 바이너리 스트림의 값을 대체합니다.
추출된 아카이브 콘텐츠를 캡슐화하는 바이너리 스트림의 경우 contextDir
필드의 값이 아카이브 내 하위 디렉터리로 해석되고, 유효한 경우 빌드를 실행하기 전에 빌더가 해당 하위 디렉터리로 변경됩니다.