This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.6. Buildah를 사용한 사용자 정의 이미지 빌드
OpenShift Container Platform 4.8에서는 호스트 노드에 Docker 소켓이 존재하지 않습니다. 즉 사용자 정의 빌드의 Docker 소켓 마운트 옵션에서 사용자 정의 빌드 이미지 내에서 사용하도록 액세스 가능한 Docker 소켓을 제공하지 않을 수 있습니다.
이미지를 빌드하고 내보내기 위해 이 기능이 필요한 경우 사용자 정의 빌드 이미지에 Buildah 툴을 추가한 후 이 툴을 사용하여 사용자 정의 빌드 논리 내에서 이미지를 빌드하고 내보내십시오. 다음은 Buildah를 사용하여 사용자 정의 빌드를 실행하는 방법의 예입니다.
사용자 정의 빌드 전략을 사용하려면 사용자가 클러스터에서 실행되는 권한 있는 컨테이너 내에서 임의의 코드를 실행할 수 있으므로 기본적으로 일반 사용자에게는 없는 권한이 필요합니다. 이 수준의 액세스 권한은 사용 시 클러스터를 손상시킬 수 있으므로 클러스터에 대한 관리 권한이 있는 신뢰할 수 있는 사용자에게만 부여해야 합니다.
2.6.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- 사용자 정의 빌드 권한을 부여하는 방법을 검토합니다.
2.6.2. 사용자 정의 빌드 아티팩트 생성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 빌드 이미지로 사용할 이미지를 생성해야 합니다.
프로세스
빈 디렉터리에서부터 다음 콘텐츠를 사용하여
Dockerfile
이라는 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 동일한 디렉터리에서
dockerfile.sample
이라는 파일을 생성합니다. 이 파일은 사용자 정의 빌드 이미지에 포함되어 있으며 사용자 정의 빌드에서 생성하는 이미지를 정의합니다.FROM registry.access.redhat.com/ubi8/ubi RUN touch /tmp/build
FROM registry.access.redhat.com/ubi8/ubi RUN touch /tmp/build
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 동일한 디렉터리에
build.sh
라는 파일을 생성합니다. 이 파일에는 사용자 정의 빌드가 실행될 때 실행되는 논리가 포함되어 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.3. 사용자 정의 빌더 이미지 빌드 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform을 사용하여 사용자 정의 전략에서 사용할 사용자 정의 빌더 이미지를 빌드하고 내보낼 수 있습니다.
사전 요구 사항
- 새 사용자 정의 빌더 이미지를 생성하는 데 사용할 모든 입력을 정의합니다.
프로세스
사용자 정의 빌더 이미지를 빌드할
BuildConfig
오브젝트를 정의합니다.oc new-build --binary --strategy=docker --name custom-builder-image
$ oc new-build --binary --strategy=docker --name custom-builder-image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 정의 빌드 이미지를 생성한 디렉터리에서 빌드를 실행합니다.
oc start-build custom-builder-image --from-dir . -F
$ oc start-build custom-builder-image --from-dir . -F
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 빌드가 완료되면
custom-builder-image:latest
라는 이미지 스트림 태그의 프로젝트에서 새 사용자 정의 빌더 이미지를 사용할 수 있습니다.
2.6.4. 사용자 정의 빌더 이미지 사용 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 빌더 이미지와 함께 사용자 정의 전략을 사용하여 사용자 정의 빌드 논리를 실행하는 BuildConfig
오브젝트를 정의할 수 있습니다.
사전 요구 사항
- 새 사용자 정의 빌더 이미지에 필요한 모든 입력을 정의합니다.
- 사용자 정의 빌더 이미지를 빌드합니다.
프로세스
buildconfig.yaml
이라는 파일을 생성합니다. 이 파일은 프로젝트에서 생성되어 실행되는BuildConfig
오브젝트를 정의합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 프로젝트 이름을 지정합니다.
BuildConfig
를 생성합니다.oc create -f buildconfig.yaml
$ oc create -f buildconfig.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow imagestream.yaml
이라는 파일을 생성합니다. 이 파일은 빌드에서 이미지를 내보낼 이미지 스트림을 정의합니다.kind: ImageStream apiVersion: image.openshift.io/v1 metadata: name: sample-custom spec: {}
kind: ImageStream apiVersion: image.openshift.io/v1 metadata: name: sample-custom spec: {}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지 스트림을 생성합니다.
oc create -f imagestream.yaml
$ oc create -f imagestream.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 정의 빌드를 실행합니다.
oc start-build sample-custom-build -F
$ oc start-build sample-custom-build -F
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 빌드를 실행하면 빌드에서 이전에 빌드한 사용자 정의 빌더 이미지를 실행하는 Pod를 시작합니다. Pod는 사용자 정의 빌더 이미지의 진입점으로 정의된
build.sh
논리를 실행합니다.build.sh
논리는 Buildah를 호출하여 사용자 정의 빌더 이미지에 포함된dockerfile.sample
을 빌드한 다음 Buildah를 사용하여 새 이미지를sample-custom image stream
으로 내보냅니다.