빌드 오류 문제 해결

이 페이지에서는 빌드 실행 시 발생할 수 있는 몇 가지 일반적인 오류 메시지에 대한 해결 방법과 문제 해결 전략을 제공합니다.

빌드가 로컬에서 수행되나요?

Cloud Build 오류를 해결할 때 먼저 로컬에서 빌드할 수 있는지 확인해야 합니다. 빌드가 로컬에서 수행되지 않으면 문제의 근본 원인은 Cloud Build가 아닙니다. 먼저 로컬에서 문제를 진단하고 수정해야 합니다.

빌드 로그를 살펴보셨나요?

빌드 오류에 대한 자세한 내용은 Logging 또는 Cloud Storage 빌드 로그를 참조하세요. stdout 또는 stderr에 작성된 로그는 Cloud Console에 자동으로 표시됩니다.

사용자가 빌드 로그에 액세스할 수 없어 수동 빌드 실패

수동으로 빌드를 실행하려고 하면 다음 오류가 표시됩니다.

AccessDeniedAccess denied. [EMAIL_ADDRESS] does not have storage.objects.get access to the Google Cloud Storage object.

Cloud Build에서는 수동 빌드를 실행하고 기본 Cloud Storage 로그 버킷을 사용하는 사용자에게 Cloud Build 편집자 역할 외에도 프로젝트 뷰어 IAM 역할이 필요하므로 이 오류가 표시됩니다. 이 오류를 해결하려면 다음 중 하나를 수행하세요.

서비스 계정 권한이 누락되어 빌드 실패

Cloud Build는 사용자 대신 특별 서비스 계정을 사용하여 빌드를 실행합니다. 작업을 수행하는 데 필요한 권한이 Cloud Build 서비스 계정에 없는 경우 다음 오류가 표시됩니다.

Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com

이 오류를 해결하려면 서비스 계정에 필수 권한을 부여합니다. 다음 페이지의 정보를 사용하여 Cloud Build 서비스 계정에 부여할 권한을 결정합니다.

서비스 계정 권한 누락으로 인한 빌드 실패는 일반적으로 Cloud Build를 사용하여 배포를 시도할 때 발생합니다.

Cloud Functions에 배포 시 오류 발생

Cloud Functions에 배포하려고 하면 다음 오류가 표시됩니다.

Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com

이 오류를 해결하려면 Cloud Build 서비스 계정에 Cloud Functions 개발자 역할을 부여합니다.

App Engine에 배포 시 오류 발생

App Engine에 배포하려고 하면 다음 오류가 표시됩니다.

Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com

이 오류를 해결하려면 Cloud Build 서비스 계정에 App Engine 관리자 역할을 부여합니다.

GKE에 배포 시 오류 발생

GKE에 배포하려고 하면 다음 오류가 표시됩니다.

Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com

이 오류를 해결하려면 GKE 개발자 역할을 Cloud Build 서비스 계정에 부여합니다.

Cloud Run에 배포 시 오류 발생

Cloud Run에 배포하려고 하면 다음 오류가 표시됩니다.

Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com

Cloud Build 서비스 계정에 Cloud Run에 배포하는 데 필요한 IAM 권한이 없으므로 이 오류가 표시됩니다. 필요한 권한 부여에 대한 자세한 내용은 Cloud Run에 배포를 참조하세요.

Container Registry에 이미지를 저장하는 중에 오류 발생

빌드에서 빌드된 이미지를 Container Registry에 저장하려고 하면 다음 오류가 표시됩니다.

[EMAIL_ADDRESS] does not have storage.buckets.create access to project [PROJECT_NAME]

Cloud Build 서비스 계정에 Container Registry에 컨테이너 이미지를 저장하는 데 필요한 스토리지 관리자 역할이 없으므로 이 오류가 표시됩니다.

잘못된 SSH 승인으로 인한 빌드 실패

빌드를 실행할 때 다음 오류가 표시됩니다.

Could not parse ssh: [default]: invalid empty ssh-agent socket, make sure SSH_AUTH_SOCK is set

이 오류는 SSH 승인과 관련된 문제를 나타냅니다. 일반적인 예시로는 Cloud Build로 비공개 GitHub 저장소에 액세스할 때 발생하는 SSH 승인 오류입니다. GitHub용 SSH를 설정하는 방법은 비공개 GitHub 저장소 액세스를 참조하세요.

I/O 제한 시간 오류

빌드를 실행할 때 다음 오류가 표시됩니다.

Timeout - last error: dial tcp IP_ADDRESS: i/o timeout

이 오류는 빌드에서 비공개 네트워크의 리소스에 액세스하려고 할 때 주로 발생합니다. Cloud Build를 통해 실행되는 빌드는 저장소 또는 레지스트리의 리소스와 같은 공개 인터넷의 비공개 리소스에 액세스할 수 있지만 비공개 네트워크의 리소스에는 액세스할 수 없습니다.

4xx 클라이언트 오류

이 오류 그룹은 요청을 보낸 사용자의 오류로 인해 빌드 요청이 성공하지 않은 것으로 보임을 나타냅니다. 4xx 클라이언트 오류의 예시는 다음과 같습니다.

  • **Error**: 404 : Requested entity was not found
  • **Error**: 404 : Trigger not found
  • **Error**: 400 : Failed Precondition

4xx 클라이언트 오류가 표시되면 빌드 로그에 오류의 원인에 대한 자세한 정보가 포함되어 있는지 확인합니다. 클라이언트 오류의 일반적인 원인은 다음과 같습니다.

  • 지정한 소스 위치에 커밋할 새 항목이 없고 작업 트리가 깨끗합니다. 이 경우 소스 코드 위치를 확인하고 다시 빌드합니다.
  • 저장소에 빌드 구성 파일이 없습니다. 이 경우 저장소에 빌드 구성 파일을 업로드하고 빌드를 다시 실행합니다.
  • 잘못된 트리거 ID를 지정했습니다.
  • 최근 GitHub 앱을 설치한 후 새 저장소를 추가했으며 Cloud Build에 새 저장소에 액세스할 권한이 없습니다. 이 경우 새 저장소를 Cloud Build에 연결합니다.

다음 단계