5.3. 사용자 정의 빌드
사용자 정의 빌드 전략을 사용하면 개발자가 전체 빌드 프로세스를 담당하는 특정 빌더 이미지를 정의할 수 있습니다. 자체 빌더 이미지를 사용하면 빌드 프로세스를 사용자 정의할 수 있습니다.
사용자 정의 빌더 이미지는 빌드 프로세스 논리가 포함된 일반 컨테이너 이미지입니다(예: RPM 또는 기본 이미지 빌드).
사용자 정의 빌드는 높은 권한으로 실행되며 기본적으로 사용자에게 제공되지 않습니다. 클러스터 관리 권한이 있는 신뢰할 수 있는 사용자에게만 사용자 정의 빌드를 실행할 수 있는 권한을 부여해야 합니다.
5.3.1. 사용자 정의 빌드에 FROM 이미지 사용
customStrategy.from
섹션을 사용하여 사용자 정의 빌드에 사용할 이미지를 표시할 수 있습니다.
프로세스
customStrategy.from
섹션을 설정합니다.strategy: customStrategy: from: kind: "DockerImage" name: "openshift/sti-image-builder"
5.3.2. 사용자 정의 빌드에서 보안 사용
사용자 정의 전략에서는 모든 빌드 유형에 추가할 수 있는 소스 및 이미지 보안 외에 임의의 보안 목록을 빌더 Pod에 추가할 수 있습니다.
프로세스
각 보안을 특정 위치에 마운트하려면
strategy
YAML 파일의secretSource
및mountPath
필드를 편집합니다.strategy: customStrategy: secrets: - secretSource: 1 name: "secret1" mountPath: "/tmp/secret1" 2 - secretSource: name: "secret2" mountPath: "/tmp/secret2"
5.3.3. 사용자 정의 빌드에 환경 변수 사용
사용자 정의 빌드 프로세스에서 환경 변수를 사용할 수 있도록 하려면 빌드 구성의 customStrategy
정의에 환경 변수를 추가하면 됩니다.
여기에서 정의한 환경 변수는 사용자 정의 빌드를 실행하는 Pod로 전달됩니다.
프로세스
빌드 중 사용할 사용자 정의 HTTP 프록시를 정의합니다.
customStrategy: ... env: - name: "HTTP_PROXY" value: "http://myproxy.net:5187/"
빌드 구성에 정의된 환경 변수를 관리하려면 다음 명령을 입력합니다.
$ oc set env <enter_variables>
5.3.4. 사용자 정의 빌더 이미지 사용
OpenShift Container Platform의 사용자 정의 빌드 전략을 사용하면 전체 빌드 프로세스를 담당하는 특정 빌더 이미지를 정의할 수 있습니다. 패키지, JAR, WAR, 설치 가능한 ZIP 또는 기본 이미지와 같은 개별 아티팩트를 생성하는 빌드가 필요한 경우 사용자 정의 빌드 전략을 사용하는 사용자 정의 빌더 이미지를 사용합니다.
사용자 정의 빌더 이미지는 RPM 또는 기본 컨테이너 이미지와 같은 아티팩트를 구축하는 데 사용되는 빌드 프로세스 논리에 내장된 일반 컨테이너 이미지입니다.
또한 사용자 정의 빌더를 사용하면 단위 테스트 또는 통합 테스트를 실행하는 CI/CD 흐름과 같이 확장된 빌드 프로세스를 구현할 수 있습니다.
5.3.4.1. 사용자 정의 빌더 이미지
사용자 정의 빌더 이미지는 호출 시 빌드를 진행하는 데 필요한 정보와 함께 다음 환경 변수를 수신합니다.
변수 이름 | 설명 |
---|---|
|
|
| 빌드할 소스가 있는 Git 리포지토리의 URL입니다. |
|
|
| 빌드할 때 사용할 Git 리포지토리의 하위 디렉터리를 지정합니다. 정의한 경우에만 존재합니다. |
| 빌드할 Git 참조입니다. |
| 이 빌드 오브젝트를 생성한 OpenShift Container Platform 마스터의 버전입니다. |
| 이미지를 내보낼 컨테이너 이미지 레지스트리입니다. |
| 빌드 중인 이미지의 컨테이너 이미지 태그 이름입니다. |
|
|
5.3.4.2. 사용자 정의 빌더 워크플로
사용자 정의 빌더 이미지 작성자는 빌드 프로세스를 정의하는 데 유연성이 있지만 빌더 이미지는 OpenShift Container Platform 내에서 빌드를 실행하는 데 필요한 다음 단계를 준수해야 합니다.
-
Build
오브젝트 정의에는 빌드의 입력 매개변수에 대한 모든 필수 정보가 포함되어 있습니다. - 빌드 프로세스를 실행합니다.
- 빌드에서 이미지를 생성하면 빌드의 출력 위치가 정의된 경우 해당 위치로 내보냅니다. 다른 출력 위치는 환경 변수를 통해 전달할 수 있습니다.