컨테이너 빌드

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

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

  • Dockerfile 사용
  • Buildpack 사용

Dockerfile을 사용하여 빌드

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

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

Cloud Build를 사용하여 빌드

Google Cloud에서 이미지를 빌드하려면 다음 안내를 따르세요.

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

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

    gcloud builds submit --tag IMAGE_URL

    IMAGE_URL을 컨테이너 이미지에 대한 참조(예: gcr.io/cloudrun/hello)로 바꿉니다.

Cloud Build의 자세한 안내는 Knative serving에 배포를 참조하세요.

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

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

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

컨테이너 이미지에 소스를 빌드('컨테이너화')하기 전에 소스에 Dockerfile이 있어야 합니다. 다음 안내는 Container Registry를 이미지 레지스트리로 사용합니다.

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

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

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

    docker build . --tag IMAGE_URL

    IMAGE_URL을 컨테이너 이미지에 대한 참조(예: gcr.io/cloudrun/hello)로 바꿉니다.

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

    gcloud auth configure-docker

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

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

    docker push IMAGE_URL

    IMAGE_URL을 컨테이너 이미지에 대한 참조(예: gcr.io/cloudrun/hello)로 바꿉니다.

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

Buildpack을 사용하여 빌드

Buildpack에 대한 자세한 내용은 Buildpack 웹사이트를 참조하세요. Google은 Knative serving을 포함하여 Google Cloud 컨테이너 플랫폼에서 실행되도록 설계된 컨테이너 이미지로 소스 코드를 빌드하는 CNCF 호환 Buildpack 집합을 제공합니다.

현재 지원되는 플랫폼은 다음과 같습니다.

  • Go
  • Node.js
  • Python
  • 자바
  • .NET Core

Cloud Build를 사용하여 Buildpack으로 빌드

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

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

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

    gcloud builds submit --pack image=IMAGE_URL

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

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

pack 명령줄을 사용하여 Buildpack으로 빌드

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을 컨테이너 이미지에 대한 참조(예: gcr.io/cloudrun/hello)로 바꿉니다.

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

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

다음 단계

  • 컨테이너를 Knative serving에 배포하기 위해 준수해야 하는 계약에 대한 자세한 내용은 컨테이너 계약을 참조하세요.

  • 빌드된 컨테이너를 Knative serving에 배포하려면 서비스 배포를 따르세요.

  • Cloud Build 트리거를 사용하여 Knative serving 서비스의 빌드 및 배포를 자동화하려면 지속적 배포를 설정하세요.