우노
[GCP] Cloud Build Step 구성 요소 본문
Cloud Build Step이란?
- Cloud Build는 수행해야할 여러 테스크들을 빌드 구성 파일 내에 Step으로 정의할 수 있습니다.
- 정의된 각각의 Build Step은 동일한 Docker 컨테이너에서 순차적으로 실행됩니다.
- Build Step에서 사용하는 Builder 이미지는 Cloud Build에서 제공하는 이미지와 커뮤니티에서 제공한 이미지, 커스텀 이미지 등이 있습니다.
- Cloud Build 제공한 이미지
- bazel, curl, docker, gcloud, git, go, gsutil, javac, kubectl, mvn, npm, wget, yarn 등
- https://github.com/GoogleCloudPlatform/cloud-builders
- 커뮤니티에서 제공한 이미지
- airflow, ansible, awscli, bq, composer, dataflow, docker-compose, helm, hugo, make 등
- https://github.com/GoogleCloudPlatform/cloud-builders-community
- Cloud Build 제공한 이미지
빌드 구성 파일 예시
steps:
- name: 'gcr.io/cloud-builders/git'
args: ['clone', 'https://github.com/GoogleCloudPlatform/cloud-builders']
env: ['PROJECT_ROOT=hello']
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/my-project-id/myimage', '.']
...
...
timeout: string (Duration format)
queueTtl: string (Duration format)
logsBucket: string
...
...
- 수행해야하는 테스크를 의미하는 steps 필드뿐만 아니라, 다양한 옵션을 정의할 수 있습니다.
Steps 필드 내부 주요 구성 요소
- id : build step의 고유 식별자
- name : 어떤 cloud builder를 사용할지 지정
- args : cloud builder의 파라미터 지정, 띄어쓰기로 구분됩니다.
- name과 args가 연결된다고 보면 됩니다.
- 아래 경우엔, git clone 작업이 진행됩니다.
- name : ‘gcr.io/cloud-builders/git’
- args : [‘clone’, ‘https://github.com/GoogleCloudPlatform/cloud-builders’]
- name과 args가 연결된다고 보면 됩니다.
- entrypoint : 실행될 명령. Docker의 entrypoint와 유사합니다.
- dir : working directory 지정
- waitFor : 먼저 실행해야 하는 step 지정, id 입력
- env : step이 실행될 때 사용할 환경 변수
- timeout : 각 step의 실행 시간 제한
- secretEnv : Cloud KMS 암호화 키 사용해 암호화된 환경 변수
- 자세한 설명은 Using secrets and credentials 참고
- volumns : Docker 컨테이너 볼륨에 마운트
- logsBucket : 로그 저장할 스토리지 지정
참고
Comments