- 시작하기 전에
- GitLab 리포지토리 복제
- Dockerfile 만들기
- Google Compute Engine에서 연속 통합 (CI) 러너 활성화하기
- 파이프라인 만들기
- 아티팩트 보기
- 정리
- 관련 주제
튜토리얼: GitLab 파이프라인 만들기 (Google Artifact Registry로 푸시)
GitLab를 Google Cloud와 연결하고 Compute Engine에서 실행 중인 러너를 사용하여 이미지를 Artifact Registry로 푸시하는 GitLab 파이프라인을 만드는 방법을 배우세요.
시작하기 전에
-
이 페이지의 명령을 실행하려면 다음 개발 환경 중 하나에서
gcloud
CLI를 설정하세요. -
Google Cloud 프로젝트를 만들거나 선택하세요.
참고: 이 절차에서 만든 리소스를 유지할 계획이 없는 경우에는 기존 프로젝트를 선택하는 대신 새로운 Google Cloud 프로젝트를 만드세요. 이 단계를 마치면 프로젝트를 삭제하여 프로젝트에 연결된 모든 리소스를 제거할 수 있습니다.
Google Cloud 프로젝트를 만들려면 다음 명령을 실행하세요.
gcloud projects create PROJECT_ID
PROJECT_ID
를 만드는 중인 Google Cloud 프로젝트의 이름으로 바꾸세요. -
만든 Google Cloud 프로젝트를 선택하세요.
gcloud config set project PROJECT_ID
PROJECT_ID
를 Google Cloud 프로젝트 이름으로 바꾸세요. -
Compute Engine 및 Artifact Registry API를 활성화하세요.
gcloud services enable compute.googleapis.com artifactregistry.googleapis.com
-
Google Cloud에서 GitLab 통합을 설정하세요.
GitLab 리포지토리 복제
-
SSH 또는 HTTPS를 사용하여 GitLab 리포지토리를 작업 환경으로 복제하려면 로컬 컴퓨터로 Git 리포지토리 복제 지침을 따르세요.
-
로컬 쉘에서 작업 중인 경우 Terraform 설치하세요. Terraform은 Cloud Shell에 이미 설치되어 있습니다.
Dockerfile 만들기
-
복제한 리포지토리에서
Dockerfile
이라는 새 파일을 만드세요. -
다음 내용을
Dockerfile
에 복사하세요.# 테스트 목적의 Dockerfile. 매 빌드마다 새로운 무작위 이미지 생성. FROM alpine:3.15.11 RUN dd if=/dev/urandom of=random bs=10 count=1
-
Dockerfile
을 Git에 추가하고, 커밋하고, GitLab 리포지토리에 푸시하세요.git add Dockerfile git commit -m "add dockerfile" git push
사용자 이름과 개인 액세스 토큰을 입력하라는 메시지가 표시됩니다.
Dockerfile은 매 빌드마다 새로운 무작위 이미지를 생성하며, 테스트 목적으로만 사용됩니다.
Google Compute Engine에서 연속 통합 (CI) 러너 활성화하기
GitLab Runner는 GitLab CI/CD와 함께 작동하여 파이프라인에서 작업을 실행하는 애플리케이션입니다. Google Cloud에서의 GitLab 통합은 Compute Engine에서 자동으로 스케일링되는 러너 풀을 설정하여 동시에 여러 작업을 실행하기 위해 임시 러너를 만드는 러너 관리자를 보조합니다.
러너 풀을 자동으로 스케일링하려면 Google Cloud에서 GitLab 러너 설정하기 지침을 따르세요. CI/CD 작업을 실행할 Google Cloud 환경으로 Google Cloud를 선택하고 구성 세부 정보를 나머지 부분을 작성하세요.
러너에 대한 세부 정보를 입력한 후 Google Cloud 프로젝트를 구성하고, GitLab Runner를 설치하고 등록하며, 제공된 Terraform을 작업 환경에 적용하여 구성을 적용하세요.
파이프라인 만들기
Docker 이미지를 빌드하고, GitLab 컨테이너 레지스트리에 푸시하고, 이미지를 Google Artifact Registry로 복사하는 파이프라인을 만드세요.
-
GitLab 프로젝트에서 다음과 같이
.gitlab-ci.yml
파일을 만드세요. -
이미지를 빌드하고, GitLab 컨테이너 레지스트리에 푸시하고, Google Artifact Registry로 복사하는 파이프라인을 만들려면
.gitlab-ci.yml
파일 내용을 다음과 같이 수정하세요.예시에서 다음을 대체하세요:
-
LOCATION
: Google Artifact Registry 저장소를 만든 Google Cloud 지역. -
PROJECT
: Google Cloud 프로젝트 ID. -
REPOSITORY
: Google Artifact Registry 레파지토리의 ID.
stages: - build - deploy variables: GITLAB_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA build-sample-image: image: docker:24.0.5 stage: build services: - docker:24.0.5-dind before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY script: - docker build -t $GITLAB_IMAGE . - docker push $GITLAB_IMAGE include: - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@0.1.0 inputs: stage: deploy source: $GITLAB_IMAGE target: LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/image:v1.0.0
-
파이프라인은 이미지를 빌드하기 위해 도커 내 도커를 사용하며, 이미지를 GitLab 컨테이너 레지스트리에 저장한 후, Google Artifact Registry GitLab 컴포넌트를 사용하여 버전 v1.0.0
으로 Google Artifact Registry 저장소에 복사합니다.
아티팩트 보기
GitLab에서 아티팩트를 보려면 다음 단계를 따르세요:
- GitLab 프로젝트에서 왼쪽 사이드바에서 Build > Artifacts를 선택합니다.
- 아티팩트의 이름을 선택하여 빌드의 세부 정보를 확인합니다.
Google Artifact Registry에서 아티팩트를 보려면:
- Google Cloud 콘솔의 저장소 페이지를 엽니다.
- 연결된 저장소의 이름을 선택합니다.
- 이미지의 이름을 선택하여 버전 이름과 태그를 확인합니다.
- 이미지 버전의 이름을 선택하여 버전의 빌드, 풀 및 Manifest 정보를 확인합니다.
정리
이 페이지에서 사용한 리소스로 인해 Google Cloud 계정에 비용이 발생하지 않도록 하려면 Google Cloud 프로젝트를 삭제할 수 있습니다. 프로젝트를 유지하려면 Google Artifact Registry 저장소를 삭제할 수 있습니다.
GitLab 및 Google Artifact Registry 가격 및 프로젝트 관리에 대한 정보는 다음 리소스를 참조하세요:
Google Artifact Registry 저장소 삭제
Google Cloud 프로젝트를 유지하고 Google Artifact Registry 저장소 리소스만 삭제하려면 이 단계를 따르세요. 전체 Google Cloud 프로젝트를 삭제하려면 프로젝트 삭제 단계를 따르세요.
저장소를 삭제하기 전에 보관해 둘 이미지가 다른 위치에서 사용 가능한지 확인하세요.
저장소를 삭제하려면 다음 명령을 실행하세요:
gcloud artifacts repositories delete REPOSITORY \
--location=LOCATION
다음을 대체하세요:
-
REPOSITORY
를 Google Artifact Registry 저장소 ID로 -
LOCATION
을 저장소의 위치로
Google Cloud 프로젝트 삭제
주의: 프로젝트를 삭제하면 다음과 같은 영향이 발생합니다:
- 프로젝트 내의 모든 것이 삭제됩니다. 이 문서의 작업에 기존 프로젝트를 사용했으면 해당 프로젝트를 삭제하면 프로젝트에서 수행한 다른 모든 작업도 삭제됩니다.
- 사용자 정의 프로젝트 ID가 손실됩니다. 이 프로젝트를 만들 때 미래에 사용할 사용자 정의 프로젝트 ID를 만들었을 수 있습니다. 프로젝트 ID를 사용하는 URL(예: appspot.com URL)을 보존하기 위해 프로젝트 전체를 삭제하는 대신 프로젝트 내부의 선택한 리소스를 삭제하세요.
Google Cloud에서 여러 아키텍처, 자습서 또는 퀵 스타트 자습서를 탐구할 계획이라면 프로젝트를 재사용하여 프로젝트 할당량 한도를 초과하지 않도록 할 수 있습니다.
- Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.
- 프로젝트 목록에서 삭제할 프로젝트를 선택한 다음 삭제를 선택합니다.
- 대화 상자에 프로젝트 ID를 입력한 다음 프로젝트를 삭제하려면 종료를 선택합니다.
관련 주제
- GitLab CI/CD 구성 파일 최적화하는 방법을 알아보세요.
- Google Cloud에서 GitLab의 IAM 및 작업부 신원 연합을 사용하여 Google Cloud의 액세스를 제어하는 IAM을 사용한 액세스 제어에 대해 읽어보세요.