search
LoginSignup
2

posted at

updated at

Organization

GCP CloudbuildでTimeoutエラーの対応

GCPのCloudbuildはタイムアウト時間のデフォルトが10分となります。
特に指定しない場合、10分以上かかるビルドはタイムアウトエラーとなります。

それを解決するため、timeoutだけを指定したら済みます。
ただし、いくつか注意はあります。

  • timeoutは最大24時間(1日)で指定できます。
  • Cloudbuildスクリプトがモジュール化される場合、モジュールごとに指定しないといけない。片方だけ指定する場合、残りのモジュールはタイムアウト10分のデフォルトのままとなります。

サンプルを投稿致します。

フォルダ構成

cloudbuild_timeout
├── _base
│   └── cloudbuild.matlab.R2019b.yaml
├── dev
│   └── cloudbuild.matlab.R2019b.yaml
└── dockerfile
    └── Dockerfile.matlab.R2019b

dev → _baseをコールする構成となっています。
この場合は両方のスクリプトで timeoutを指定します。

dev/cloudbuild.matlab.R2019b.yaml
steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args: [
      'builds', 
      'submit',
      '--config=_base/cloudbuild.matlab.R2019b.yaml',
      '--substitutions=_GCR_PROJECT=project-abc123,_GCR_REGION=asia.gcr.io',
      '.'
  ]
timeout: 3600s
_base/cloudbuild.matlab.R2019b.yaml
steps:

# docker build
- name: 'gcr.io/cloud-builders/docker'
  dir: .
  args: [
         'build',
         '-t', '${_GCR_REGION}/${_GCR_PROJECT}/${_GCR_IMAGE_NAME}:${_GCR_TAG}',
         '-f', 'dockerfile/Dockerfile.matlab.R2019b',
         '--cache-from', '${_GCR_REGION}/${_GCR_PROJECT}/${_GCR_IMAGE_NAME}:${_GCR_TAG}',
         '.'
        ]

- name: 'gcr.io/cloud-builders/docker'
  args: ["push", '${_GCR_REGION}/${_GCR_PROJECT}/${_GCR_IMAGE_NAME}']

timeout: 3600s

substitutions:
  # # Image name
  _GCR_IMAGE_NAME: matlab-r2019b
  # # Image tag
  _GCR_TAG: latest
  # # KMS Key location to decrypt private key



ご覧して頂き、どうも有難う御座います!
DSS Ben

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2