Cloud Run에서는 컨테이너 계약을 준수하는 한 컨테이너 이미지를 빌드할 수 있는 모든 도구로 빌드된 컨테이너 이미지를 사용할 수 있습니다.
특히 코드가 PORT
환경 변수로 정의된 포트로 HTTP 요청을 리슨해야 합니다. 이 PORT
환경 변수는 Cloud Run에서 사용자의 컨테이너로 자동으로 주입됩니다.
이 페이지에서는 컨테이너 이미지를 빌드하는 몇 가지 방법을 설명합니다.
- Dockerfile 사용
- Google Cloud 빌드팩 사용
시작하기 전에
이 페이지에서 일부 명령어를 실행하려면 Google Cloud CLI가 필요합니다.
지원되는 Container Registry에 저장소를 만듭니다. Artifact Registry 저장소를 만들려면 다음을 실행합니다.
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=LOCATION \ --description="DESCRIPTION" \ --immutable-tags \ --async
gcloud CLI 사용자 인증 정보 도우미를 사용하여 Artifact Registry에 대한 액세스 권한을 가져오도록 Docker를 구성할 수 있습니다.
gcloud auth configure-docker LOCATION-docker.pkg.dev
Dockerfile을 사용하여 빌드
로컬에서 Docker를 사용하거나 Cloud Build를 사용하여 컨테이너 이미지에 소스를 빌드('컨테이너화')하기 전에 소스에 Dockerfile이 있어야 합니다. Hello World 샘플에는 많이 사용되는 언어로 된 샘플 애플리케이션과 Dockerfile이 포함되어 있습니다.
Dockerfile을 사용하는 경우 다음 방법 중 하나를 사용하여 빌드할 수 있습니다.
- Cloud Build를 사용하여 빌드
- Docker를 사용하여 로컬에서 빌드
Cloud Build를 사용하여 빌드
Cloud Build를 사용하여 Google Cloud에서 이미지를 빌드할 수 있습니다.
소스 및 Dockerfile이 포함된 폴더로 이동합니다.
다음 명령어를 실행합니다.
gcloud builds submit --tag IMAGE_URL
IMAGE_URL을 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/hello:latest
)로 바꿉니다. Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL의 형식은LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
입니다.
빌드 성능 개선에 대한 팁은 빌드 속도 향상을 참조하세요.
Docker를 사용하여 로컬로 빌드 및 푸시
Docker가 로컬에 설치되어 있는 경우 Cloud Build 또는 Google Cloud의 빌드팩을 사용하는 대신 docker build
를 사용할 수 있습니다.
Docker를 사용하여 컨테이너 이미지를 빌드하려면 다음 안내를 따르세요.
소스 및
Dockerfile
이 포함된 폴더로 이동합니다.다음 명령어를 실행합니다.
docker build . --tag IMAGE_URL
IMAGE_URL을 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/hello:latest
)로 바꿉니다. Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL의 형식은LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
입니다.Apple Silicon이 탑재된 Mac을 사용하는 경우 명령줄에서
--platform linux/amd64
를 지정해야 합니다.컨테이너 이미지를 지원되는 Container Registry로 푸시합니다.
docker push IMAGE_URL
IMAGE_URL을 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/hello:latest
)로 바꿉니다. Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL의 형식은LOCATION-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 빌드팩을 사용하여 빌드하려면 다음 안내를 따르세요.
소스가 포함된 폴더로 이동합니다.
다음 명령어를 실행합니다.
gcloud builds submit --pack image=IMAGE_URL
IMAGE_URL을 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/hello:latest
)로 바꿉니다. Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL의 형식은LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
입니다.빌드가 완료될 때까지 기다립니다.
pack
명령줄을 사용하여 Google Cloud 빌드팩으로 빌드
pack 명령어를 사용하여 빌드하려면 다음 안내를 따르세요.
아직 Docker를 설치하지 않았다면 설치합니다.
아직
pack
을 설치하지 않았다면 설치합니다.소스가 포함된 폴더로 이동합니다.
다음 명령어를 실행하여 빌드하고 지원되는 Container Registry에 푸시합니다.
pack build --publish IMAGE_URL
IMAGE_URL을 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/hello:latest
)로 바꿉니다. Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL의 형식은LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
입니다.pack
이 완료될 때까지 기다립니다.
자세한 내용은 애플리케이션 빌드의 안내를 참조하세요.
다음 단계
- 컨테이너가 빌드된 후 Cloud Run에 배포하기 전에 로컬에서 테스트할 수 있습니다. 자세한 내용은 Cloud Run 서비스를 로컬에서 테스트를 참조하세요.
- 컨테이너를 Cloud Run에 배포하기 위해 준수해야 하는 계약에 대한 자세한 내용은 컨테이너 계약을 참조하세요.
- 빌드된 컨테이너를 Cloud Run에 배포하려면 서비스 배포를 따르세요.
- Cloud Build Trigger를 사용하여 Cloud Run 서비스의 빌드 및 배포를 자동화하려면 지속적 배포를 설정하세요.
- 자바 애플리케이션을 위한 최적의 컨테이너 빌드를 수행하려면 Jib로 자바 컨테이너 빌드를 참조하세요.