컨테이너 빌드

Cloud Run에서는 컨테이너 계약을 준수하는 한 컨테이너 이미지를 빌드할 수 있는 모든 도구로 빌드된 컨테이너 이미지를 사용할 수 있습니다. 특히 코드가 PORT 환경 변수로 정의된 포트로 HTTP 요청을 리슨해야 합니다. 이 PORT 환경 변수는 Cloud Run에서 사용자의 컨테이너로 자동으로 주입됩니다.

이 페이지에서는 컨테이너 이미지를 빌드하는 몇 가지 방법을 설명합니다.

  • Dockerfile 사용
  • Buildpack 사용

Dockerfile을 사용하여 빌드

로컬에서 Docker를 사용하거나 Cloud Build를 사용하여 컨테이너 이미지에 소스를 빌드('컨테이너화')하기 전에 소스에 Dockerfile이 있어야 합니다. Hello World 샘플에는 많이 사용되는 언어로 된 샘플 애플리케이션과 Dockerfile이 포함되어 있습니다.

Dockerfile을 사용하는 경우 다음 방법 중 하나를 사용하여 빌드할 수 있습니다.

  • Cloud Build를 사용하여 빌드
  • Docker를 사용하여 로컬에서 빌드

Cloud Build를 사용하여 빌드

Cloud Build를 사용하여 Google Cloud에서 이미지를 빌드할 수 있습니다.

  1. 소스 및 Dockerfile이 포함된 폴더로 이동합니다.

  2. 다음 명령어를 실행합니다.

    gcloud builds submit --tag IMAGE_URL

    IMAGE_URL을 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/hello:latest)로 바꿉니다. Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL의 형식은 REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG입니다.

빌드 성능 개선에 대한 팁은 빌드 속도 향상을 참조하세요.

Docker를 사용하여 로컬로 빌드 및 푸시

Docker가 로컬에 설치되어 있는 경우 Cloud Build 또는 Buildpack을 사용하는 대신 docker build를 사용할 수 있습니다.

Docker를 사용하여 컨테이너 이미지를 빌드하려면 다음 안내를 따르세요.

  1. 소스 및 Dockerfile이 포함된 폴더로 이동합니다.

  2. 다음 명령어를 실행합니다.

    docker build . --tag IMAGE_URL

    IMAGE_URL을 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/hello:latest)로 바꿉니다. Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL의 형식은 REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG입니다.

  3. Google Cloud CLI를 사용하여 Container Registry에 대한 요청을 인증하도록 Docker를 아직 구성하지 않았으면 지금 다음 명령어를 사용하여 구성합니다.

    gcloud auth configure-docker

    Docker를 사용하여 이미지를 내보내거나 가져오기 전에 이 작업을 수행해야 합니다. 이 작업은 한 번만 수행하면 됩니다.

  4. 컨테이너 이미지를 지원되는 Container Registry로 푸시합니다.

    docker push IMAGE_URL

    IMAGE_URL을 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/hello:latest)로 바꿉니다. Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL의 형식은 REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG입니다.

이 프로세스에서 로컬 파일을 제외하려면 .dockerignore 구성 파일 안내를 따르세요.

Google Cloud 빌드팩을 사용하여 빌드

Google Cloud 빌드팩은 Cloud Run을 포함하여 Google Cloud 컨테이너 플랫폼에서 실행되도록 설계된 컨테이너 이미지로 소스 코드를 빌드하는 CNCF 호환 빌드팩 집합입니다.

지원되는 언어 목록은 Google Cloud 빌드팩 문서를 참조하세요.

Cloud Build를 사용하여 Google Cloud 빌드팩으로 빌드

Google Cloud 빌드팩으로 빌드하려면 다음 안내를 따르세요.

  1. 소스가 포함된 폴더로 이동합니다.

  2. 다음 명령어를 실행합니다.

    gcloud builds submit --pack image=IMAGE_URL

    IMAGE_URL을 컨테이너 이미지 URL(예: gcr.io/myproject/myservice)로 바꿉니다.

  3. 빌드가 완료될 때까지 기다립니다.

pack 명령줄을 사용하여 Google Cloud 빌드팩으로 빌드

pack 명령어를 사용하여 빌드하려면 다음 안내를 따르세요.

  1. 아직 Docker를 설치하지 않았다면 설치합니다.

  2. Google Cloud CLI를 사용하여 Container Registry에 대한 요청을 인증하도록 Docker를 아직 구성하지 않았으면 지금 다음 명령어를 사용하여 구성합니다.

    gcloud auth configure-docker

    Docker를 사용하여 이미지를 내보내거나 가져오기 전에 이 작업을 수행해야 합니다. 이 작업은 한 번만 수행하면 됩니다.

  3. 아직 pack을 설치하지 않았다면 설치합니다.

  4. 소스가 포함된 폴더로 이동합니다.

  5. 다음 명령어를 실행하여 Container Registry에 빌드하고 푸시합니다.

    pack build --publish IMAGE_URL

    IMAGE_URL을 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/hello:latest)로 바꿉니다. Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL의 형식은 REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG입니다.

  6. pack이 완료될 때까지 기다립니다.

자세한 내용은 애플리케이션 빌드의 안내를 참조하세요.

다음 단계

  • 컨테이너가 빌드된 후 Cloud Run에 배포하기 전에 로컬에서 테스트할 수 있습니다. 자세한 내용은 Cloud Run 서비스를 로컬에서 테스트를 참조하세요.
  • 컨테이너를 Cloud Run에 배포하기 위해 준수해야 하는 계약에 대한 자세한 내용은 컨테이너 계약을 참조하세요.
  • 빌드된 컨테이너를 Cloud Run에 배포하려면 서비스 배포를 따르세요.
  • Cloud Build Trigger를 사용하여 Cloud Run 서비스의 빌드 및 배포를 자동화하려면 지속적 배포를 설정하세요.
  • 자바 애플리케이션을 위한 최적의 컨테이너 빌드를 수행하려면 Jib로 자바 컨테이너 빌드를 참조하세요.