특정 빌더 사용

빌더는 실행 가능한 컨테이너를 만드는 데 필요한 모든 구성요소를 포함하는 버전이 지정된 이미지입니다. 각 빌더는 Ubuntu 22와 같은 특정 OS 배포를 기본 이미지로 사용하며 여러 프로그래밍 언어 버전을 지원합니다.

필요한 경우 빌더 버전을 맞춤설정해야 할 수 있습니다.

  • 특정 빌더 버전에서만 사용할 수 있는 OS별 종속 항목
  • 특정 빌더 버전에서만 사용할 수 있는 특정 버전의 프로그래밍 언어

로컬 빌드

로컬 빌드의 경우 Pack CLI 및 Docker가 설치되어 있어야 합니다.

시작하기 전에

  1. Docker Community Edition(CE)을 워크스테이션에 설치합니다. Docker는 pack에서 OCI 이미지 빌더로 사용됩니다.
  2. Pack CLI를 설치합니다.
  3. Git 소스 제어 도구를 설치하여 GitHub에서 샘플 애플리케이션을 가져옵니다.

pack을 사용하여 빌더 버전 지정

--builder 플래그를 pack 명령어에 추가하여 사용할 빌더 버전을 지정할 수 있습니다.

pack build SERVICE_IMAGE_NAME --builder=BUILDER_IMAGE_URL

다음과 같이 바꿉니다.

  • BUILDER_IMAGE_URL을 빌더의 URL로 바꿉니다. 예를 들면 gcr.io/buildpacks/builder:google-22입니다.
  • SERVICE_IMAGE_NAME을 애플리케이션 이미지에 선택한 이름으로 바꿉니다.

pack 명령어에 대한 자세한 내용은 CLI 문서를 참조하세요.

project.toml을 사용하여 빌더 버전 지정

pack으로 빌드할 때 빌드팩 프로젝트 설명자(project.toml)를 사용하여 빌더를 설정할 수 있습니다.

  1. 애플리케이션 루트 디렉터리에서 다음 구성으로 project.toml이라는 파일을 만듭니다.
    [build]
    builder = "BUILDER_IMAGE_URL"
  2. `pack` 명령어를 실행하여 애플리케이션을 빌드합니다.
    pack build SERVICE_IMAGE_NAME

다음과 같이 바꿉니다.

  • BUILDER_IMAGE_URL을 빌더의 URL(예: gcr.io/buildpacks/builder:google-22)로 바꿉니다.
  • SERVICE_IMAGE_NAME을 애플리케이션 이미지에 선택한 이름으로 바꿉니다.

원격 빌드

프로젝트를 제출할 때 --pack 플래그를 추가하여 Cloud Build에 특정 빌더를 사용할 수 있습니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. API Cloud Build and Artifact Registry 사용 설정

    API 사용 설정

  5. Google Cloud CLI를 설치합니다.
  6. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    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. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  9. API Cloud Build and Artifact Registry 사용 설정

    API 사용 설정

  10. Google Cloud CLI를 설치합니다.
  11. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init
  12. Google Cloud 프로젝트에 컨테이너 이미지 저장소에 대한 액세스 권한이 있는지 확인합니다.

    Artifact Registry의 Docker 저장소에 대한 액세스를 구성하려면 다음 안내를 따르세요.

    1. Google Cloud 프로젝트와 동일한 위치에 새 Docker 저장소를 만듭니다.
      gcloud artifacts repositories create REPO_NAME \
      --repository-format=docker \
      --location=REGION --description="DESCRIPTION"
      
      다음과 같이 바꿉니다.
      • REPO_NAME을 Docker 저장소에 선택한 이름으로 바꿉니다.
      • REGION을 Google Cloud 프로젝트 위치 또는 그와 가장 가까운 위치로 바꿉니다.
      • DESCRIPTION을 선택한 설명으로 바꿉니다.

      예를 들어 'Docker 저장소' 설명과 함께 us-west2docker 저장소를 만들려면 다음 명령어를 실행합니다.

      gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \
      --location=us-west2 --description="Docker repository"
      
    2. 저장소가 만들어졌는지 확인합니다.
      gcloud artifacts repositories list
      

      Docker 저장소에 선택한 이름이 목록에 표시됩니다.

특정 빌더를 사용하여 애플리케이션 빌드

  1. gcloud를 사용하여 애플리케이션 소스 코드를 Cloud Build에 제출합니다.
    gcloud builds submit --pack builder=BUILDER_IMAGE_URL,image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/SERVICE_IMAGE_NAME

    다음과 같이 바꿉니다.

    • BUILDER_IMAGE_URL을 빌더의 URL로 바꿉니다. 예를 들면 gcr.io/buildpacks/builder:google-22입니다.
    • LOCATION을 컨테이너 저장소의 리전 이름으로 바꿉니다. 예를 들면 us-west2-docker.pkg.dev입니다.
    • PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다.
    • REPO_NAME을 Docker 저장소의 이름으로 바꿉니다.
    • SERVICE_IMAGE_NAME을 만든 컨테이너 이미지 이름으로 바꿉니다.

    submit 명령어에 대한 자세한 내용은 Cloud Build 문서를 참조하세요.

  2. 샘플 애플리케이션이 REPO_NAME에 성공적으로 게시되었는지 확인합니다.
    gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME

    다음과 같이 바꿉니다.

    • LOCATION을 컨테이너 저장소의 리전 이름으로 바꿉니다. 예를 들면 us-west2-docker.pkg.dev입니다.
    • PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다.
    • REPO_NAME을 Docker 저장소의 이름으로 바꿉니다.

Cloud Run을 사용하여 소스에서 배포

Cloud Run으로 소스에서 배포할 때 빌드팩 프로젝트 설명자 파일(예: project.toml)을 사용하여 빌더를 설정할 수 있습니다.

  1. 애플리케이션 디렉터리의 루트에서 project.toml 파일을 초기화하고 다음 구성을 붙여넣습니다.
    [build]
    builder = "BUILDER_IMAGE_URL"
  2. 소스에서 애플리케이션을 배포합니다.
    gcloud run deploy --source . SERVICE_IMAGE_NAME

다음과 같이 바꿉니다.

  • BUILDER_IMAGE_URL을 빌더의 URL로 바꿉니다. 예를 들면 gcr.io/buildpacks/builder:google-22입니다.
  • SERVICE_IMAGE_NAME을 만든 컨테이너 이미지 이름으로 바꿉니다.