Cloud Build를 사용하여 Cloud Run에 컨테이너화된 애플리케이션 배포

이 페이지에서는 Cloud Build를 사용하여 Cloud Run에 컨테이너화된 애플리케이션을 배포하는 방법을 보여줍니다.


Cloud Shell 편집기에서 이 태스크의 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.

둘러보기


시작하기 전에

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

권한 부여

Cloud Run에 이미지를 배포하려면 Cloud Build에 Cloud Run 관리자IAM 서비스 계정 사용자 권한이 필요합니다.

  1. 터미널 창을 엽니다.

  2. 프로젝트 ID와 프로젝트 번호를 저장할 환경 변수를 설정합니다.

    PROJECT_ID=$(gcloud config list --format='value(core.project)')
    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
    
  3. Cloud Build 서비스 계정에 Cloud Run 관리자 역할을 부여합니다.

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
        --role=roles/run.admin
    
  4. Cloud Run 런타임 서비스 계정의 Cloud Build 서비스 계정에 IAM 서비스 계정 사용자 역할을 부여합니다.

    gcloud iam service-accounts add-iam-policy-binding \
        $PROJECT_NUMBER-compute@developer.gserviceaccount.com \
        --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
        --role=roles/iam.serviceAccountUser
    

사전 빌드된 이미지 배포

Artifact Registry에 저장된 사전 빌드된 이미지를 Cloud Run에 배포하도록 Cloud Build를 구성할 수 있습니다.

사전 빌드된 이미지를 배포하려면 다음 안내를 따르세요.

  1. 터미널 창을 엽니다(열려 있지 않은 경우).

  2. helloworld라는 이름의 새 디렉터리를 만들고 디렉터리로 이동합니다.

    mkdir helloworld
    cd helloworld
    
  3. 다음 콘텐츠로 cloudbuild.yaml라는 파일을 만듭니다. 이 파일은 Cloud Build 구성 파일입니다. 여기에는 cloudrunservice라는 Cloud Run 서비스에서 이름이 us-docker.pkg.dev/cloudrun/container/hello인 이미지를 배포하기 위한 Cloud Build 지침이 포함되어 있습니다.

    steps:
    - name: 'gcr.io/cloud-builders/gcloud'
      script: |
        gcloud run deploy cloudrunservice --image us-docker.pkg.dev/cloudrun/container/hello --region us-central1 --platform managed --allow-unauthenticated
  4. 다음 명령어를 실행하여 이미지를 배포합니다.

    gcloud builds submit --region=us-west2 --config cloudbuild.yaml
    

빌드가 완료되면 다음과 비슷한 출력이 표시됩니다.

DONE
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ID                                    CREATE_TIME                DURATION  SOURCE                                                                                            IMAGES  STATUS
784653b2-f00e-4c4b-9f5f-96a5f115bef4  2020-01-23T14:53:13+00:00  23S       gs://cloudrunqs-project_cloudbuild/source/1579791193.217726-ea20e1c787fb4784b19fb1273d032df2.tgz  -       SUCCESS

hello 이미지를 Cloud Run에 배포했습니다.

배포된 이미지 실행

  1. Google Cloud 콘솔에서 Cloud Run 페이지를 엽니다.

    Cloud Run 페이지 열기

  2. 프로젝트를 선택하고 열기를 클릭합니다.

    Cloud Run 서비스 페이지가 표시됩니다.

  3. 테이블에서 이름이 cloudrunservice인 행을 찾고 cloudrunservice를 클릭합니다.

    cloudrunservice서비스 세부정보 페이지가 표시됩니다.

  4. cloudrunservice에 배포한 이미지를 실행하려면 URL을 클릭합니다.

    Cloud Run 서비스 세부정보 페이지 스크린샷

다음 단계