Google Cloud Run 및 Gitlab으로 자동 배포 설정

4986 단어
Gitlab CI/CD를 사용하여 Google Cloud Run 프로젝트에 대한 지속적인 배포 파이프라인을 설정하는 방법을 살펴보겠습니다.

전제 조건
구글 클라우드 런:

Cloud Run is a serverless, managed compute platform that enables you to run stateless containers that are invocable via web requests or Pub/Sub events.
To run a Cloud Run service, you need to:



깃랩:

GitLab is a web-based DevOps lifecycle tool that provides a Git-repository manager providing wiki, issue-tracking, and continuous integration and deployment pipeline features, using an open-source license, developed by GitLab Inc.
You can create a Gitlab project here: New Gitlab project



여기에서 샘플 리포지토리를 복제합니다.
https://gitlab.com/niyi/myhelloworldapp

1a단계: 서비스 계정 활성화
서비스 계정은 GCP 플랫폼에서 승인된 API 호출을 수행하기 위해 애플리케이션에서 사용하는 특별한 종류의 계정입니다.
Google Cloud 프로젝트에서 Cloud Build > 설정을 탐색합니다.
서비스 계정 권한에서 Cloud Run 및 서비스 계정이 모두 사용 설정되어 있는지 확인합니다.
1b단계: Google 서비스 계정 만들기
애플리케이션에서 사용할 새 서비스 계정을 생성합니다.
  • Google Cloud 프로젝트에서 IAM 및 관리자 > 서비스 계정으로 이동한 후 서비스 계정 생성을 클릭합니다.

  • 새 서비스 계정에 원하는 이름을 지정하고 만들기를 클릭합니다
  • .
  • 작업 번호 2에서 역할 선택 입력을 클릭하여 서비스 계정에 다음 역할을 추가합니다.
  • 클라우드 빌드 서비스 에이전트
  • 서비스 계정 사용자
  • Cloud Run 관리자
  • 프로젝트 뷰어

  • 생성을 클릭한 다음 완료를 클릭하여 계정을 추가합니다.

  • 새로 만든 서비스 계정 > 키 > 키 추가 > 새 키 만들기를 클릭하여 이 계정에 대한 자격 증명 파일을 생성합니다. JSON을 선택하고 만들기를 클릭합니다.


  • 2단계: Gitlab CICD 변수 설정
    이 단계에서는 코드에서 사용할 변수를 만듭니다. 하나는 GCP 프로젝트 ID용이고 다른 하나는 이전에 만든 서비스 계정용입니다.
  • Gitlab > 설정 > CI/CD에서 프로젝트 리포지토리로 이동합니다
  • .
  • 변수를 추가하려면 변수 섹션에서 확장 버튼을 클릭하고 변수 추가를 클릭합니다.
    두 개의 변수를 추가해야 합니다. 하나는 GCP 프로젝트 ID의 값을 사용하는 GCP_PROJECT_ID이고 다른 하나는 이전에 다운로드한 JSON 콘텐츠를 위한 GCP_SERVICE_ACCOUNT입니다.



  • 3단계: 애플리케이션 코드 설정
    Gitlab CI/CD에 연결하도록 코드를 구성해야 합니다. 또한 Docker를 사용하여 애플리케이션을 컨테이너화하여 여러 플랫폼에서 동일하게 실행합니다.
  • 애플리케이션에 Google Cloud Run의 기본 포트
  • 인 포트 8080에서 실행되는 Dockerfile을 추가했습니다.
  • 또한 트리거하는 파일인 .gitlab-ci.yml 파일도 추가했습니다CI/CD pipeline on Gitlab.
    *

  • # File: .gitlab-ci.yml
    variables:
      SERVICE_NAME: "myHelloWorldApp"
    
    deploy:
      stage: deploy
      only:
        - master # This pipeline stage will run on this branch alone
    
      image: google/cloud-sdk:latest # We'll use Google Cloud SDK for Cloud Run related commands
      script:
        - echo $GCP_SERVICE_ACCOUNT > gcloud-service-key.json # Save Google cloud contents in a temporary json file
        - gcloud auth activate-service-account --key-file gcloud-service-key.json # Activate your service account
        - gcloud auth configure-docker # Configure docker environment
        - gcloud config set project $GCP_PROJECT_ID #Set the GCP Project ID to the variable name
        - gcloud builds submit --tag gcr.io/$GCP_PROJECT_ID/$SERVICE_NAME #Run the gcloud build command to build our image
        - gcloud run deploy $SERVICE_NAME --image gcr.io/$GCP_PROJECT_ID/$SERVICE_NAME --region=us-east4 --platform managed --allow-unauthenticated # Run the gcloud run deploy command to deploy our new service
    


    SERVICE_NAME 값을 원하는 애플리케이션 이름으로 바꾸고 변경 사항을 저장합니다.

    파일 끝에서 각각 gcloud buildgcloud run deploy 명령을 실행하여 애플리케이션을 빌드하고 배포합니다.

    변경 사항을 원격 Gitlab 저장소로 푸시하고 새 아기가 생성되는 것을 지켜보십시오.

    Gitlab에서 배포 진행 상황을 모니터링하려면 CI/CD > 파이프라인으로 이동하고 최신 작업을 클릭합니다.
    Cloud Run에서 새 애플리케이션을 보려면 GCP > Cloud Run으로 이동하여 서비스 이름을 검색하세요.


    축하합니다!

    좋은 웹페이지 즐겨찾기