8.3.4. Git 소스
지정된 경우 소스 코드가 제공된 위치에서 가져옵니다.
인라인 Dockerfile을 제공하면 Git 리포지토리의 contextDir
에 있는 Dockerfile (있는 경우)을 덮어씁니다.
소스 정의는 BuildConfig
에 있는 spec
섹션의 일부입니다.
source: git: 1 uri: "https://github.com/openshift/ruby-hello-world" ref: "master" contextDir: "app/dir" 2 dockerfile: "FROM openshift/ruby-22-centos7\nUSER example" 3
- 1
git
필드에는 소스 코드의 원격 Git 리포지토리에 대한 URI가 포함되어 있습니다. 필요한 경우ref
필드를 지정하여 특정 Git 참조를 확인합니다. 유효한ref
는 SHA1 태그 또는 분기 이름이 될 수 있습니다.- 2
contextDir
필드를 사용하면 빌드에서 애플리케이션 소스 코드를 찾는 소스 코드 리포지토리 내부의 기본 위치를 덮어쓸 수 있습니다. 애플리케이션이 하위 디렉터리에 있는 경우 이 필드를 사용하여 기본 위치(루트 폴더)를 덮어쓸 수 있습니다.- 3
- 선택적
dockerfile
필드를 제공하는 경우 소스 리포지토리에 있을 수 있는 모든 Dockerfile을 덮어쓰는 Dockerfile이 문자열에 포함되어야 합니다.
ref
필드가 가져오기 요청을 나타내는 경우 시스템은 git fetch
작업을 사용한 다음 FETCH_HEAD
를 확인합니다.
ref
값을 제공하지 않으면 OpenShift Container Platform에서 부분 복제(--depth=1)
를 수행합니다. 이 경우 기본 분기(일반적으로 master
)의 최근 커밋과 관련된 파일만 다운로드됩니다. 그러면 리포지토리는 더 빠르게 다운로드되지만 전체 커밋 내역은 다운로드되지 않습니다. 지정된 리포지토리의 기본 분기에 대한 전체 git clone
을 수행하려면 기본 분기(예: master
)의 이름을 ref
로 설정합니다.
8.3.4.1. 프록시 사용
프록시를 사용하여 Git 리포지토리에만 액세스할 수 있는 경우 BuildConfig
의 source
섹션에서 사용할 프록시를 정의할 수 있습니다. 사용할 HTTP 및 HTTPS 프록시를 둘 다 구성할 수 있습니다. 두 필드 모두 선택 사항입니다. 프록시를 수행하지 않는 도메인도 NoProxy 필드를 통해 지정할 수 있습니다.
이를 위해서는 소스 URI에서 HTTP 또는 HTTPS 프로토콜을 사용해야 합니다.
source: git: uri: "https://github.com/openshift/ruby-hello-world" httpProxy: http://proxy.example.com httpsProxy: https://proxy.example.com noProxy: somedomain.com, otherdomain.com
클러스터 관리자는 Ansible을 사용하여 Git 복제를 위해 글로벌 프록시를 구성할 수도 있습니다.
파이프라인 전략 빌드의 경우 Jenkins용 Git 플러그인에 대한 현재 제한 사항을 고려할 때 Git 플러그인을 통한 모든 Git 작업은 BuildConfig
에 정의된 HTTP 또는 HTTPS 프록시를 활용하지 않습니다. Git 플러그인은 플러그인 관리자 패널에서 Jenkins UI에 구성된 프록시만 사용합니다. 이 프록시는 모든 작업에서 Jenkins 내의 모든 Git 상호 작용에 사용됩니다. JenkinsBehindProxy에서 Jenkins UI를 통해 프록시를 구성하는 방법에 대한 지침을 확인할 수 있습니다.