2.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
로 설정합니다.
MITM(Man in the middle) TLS 하이재킹을 수행하거나 프록시 연결을 재암호화하고 있는 프록시를 통과하는 Git 복제 작업이 작동하지 않습니다.
2.3.4.1. 프록시 사용
프록시를 사용하는 경우에만 Git 리포지토리에 액세스할 수 있는 경우 빌드 구성의 source
섹션에 사용할 프록시를 정의할 수 있습니다. 사용할 HTTP 및 HTTPS 프록시를 둘 다 구성할 수 있습니다. 두 필드 모두 선택 사항입니다. 프록시를 사용할 수 없는 도메인도 NoProxy
필드에 지정할 수 있습니다.
이를 위해서는 소스 URI에서 HTTP 또는 HTTPS 프로토콜을 사용해야 합니다.
source: git: uri: "https://github.com/openshift/ruby-hello-world" ref: "master" httpProxy: http://proxy.example.com httpsProxy: https://proxy.example.com noProxy: somedomain.com, otherdomain.com
파이프라인 전략 빌드의 경우 Jenkins용 Git 플러그인에 대한 현재의 제한 사항을 고려할 때 Git 플러그인을 통한 모든 Git 작업은 BuildConfig
에 정의된 HTTP 또는 HTTPS 프록시를 활용하지 않습니다. Git 플러그인은 플러그인 관리자 패널에서 Jenkins UI에 구성된 프록시만 사용합니다. 그런 다음 이 프록시는 모든 작업에서 Jenkins 내의 모든 Git 상호 작용에 사용됩니다.
추가 리소스
- JenkinsBehindProxy에서 Jenkins UI를 통해 프록시를 구성하는 방법에 대한 지침을 확인할 수 있습니다.