首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建超时,不能增加超时

构建超时,不能增加超时
EN

Stack Overflow用户
提问于 2021-01-26 17:49:28
回答 1查看 157关注 0票数 0

我正在通过Cloud Build部署到Kubernettes。每隔一段时间,构建就会超时,因为它超过了十分钟的内置时间。我想不出怎么增加这个时间。我在触发器中使用了内联构建配置。它看起来像这样

代码语言:javascript
复制
    steps:
  - name: gcr.io/cloud-builders/docker
    args:
      - build
      - '-t'
      - '$_IMAGE_NAME:$COMMIT_SHA'
      - .
      - '-f'
      - $_DOCKERFILE_NAME
    dir: $_DOCKERFILE_DIR
    id: Build
  - name: gcr.io/cloud-builders/docker
    args:
      - push
      - '$_IMAGE_NAME:$COMMIT_SHA'
    id: Push
  - name: gcr.io/cloud-builders/gke-deploy
    args:
      - prepare
      - '--filename=$_K8S_YAML_PATH'
      - '--image=$_IMAGE_NAME:$COMMIT_SHA'
      - '--app=$_K8S_APP_NAME'
      - '--version=$COMMIT_SHA'
      - '--namespace=$_K8S_NAMESPACE'
      - '--label=$_K8S_LABELS'
      - '--annotation=$_K8S_ANNOTATIONS,gcb-build-id=$BUILD_ID'
      - '--create-application-cr'
      - >-
        --links="Build
        details=https://console.cloud.google.com/cloud-build/builds/$BUILD_ID?project=$PROJECT_ID"
      - '--output=output'
    id: Prepare deploy
  - name: gcr.io/cloud-builders/gsutil
    args:
      - '-c'
      - |-
        if [ "$_OUTPUT_BUCKET_PATH" != "" ]
        then
          gsutil cp -r output/suggested gs://$_OUTPUT_BUCKET_PATH/config/$_K8S_APP_NAME/$BUILD_ID/suggested
          gsutil cp -r output/expanded gs://$_OUTPUT_BUCKET_PATH/config/$_K8S_APP_NAME/$BUILD_ID/expanded
        fi
    id: Save configs
    entrypoint: sh
  - name: gcr.io/cloud-builders/gke-deploy
    args:
      - apply
      - '--filename=output/expanded'
      - '--cluster=$_GKE_CLUSTER'
      - '--location=$_GKE_LOCATION'
      - '--namespace=$_K8S_NAMESPACE'
    id: Apply deploy
    timeout: 900s
images:
  - '$_IMAGE_NAME:$COMMIT_SHA'
options:
  substitutionOption: ALLOW_LOOSE
substitutions:
  _K8S_NAMESPACE: default
  _OUTPUT_BUCKET_PATH: xxxxx-xxxxx-xxxxx_cloudbuild/deploy
  _K8S_YAML_PATH: kubernetes/
  _DOCKERFILE_DIR: ''
  _IMAGE_NAME: xxxxxxxxxxx
  _K8S_ANNOTATIONS: gcb-trigger-id=xxxxxxxx-xxxxxxx
  _GKE_CLUSTER: xxxxx
  _K8S_APP_NAME: xxxxx
  _DOCKERFILE_NAME: Dockerfile
  _K8S_LABELS: ''
  _GKE_LOCATION: xxxxxxxx
tags:
  - gcp-cloud-build-deploy
  - $_K8S_APP_NAME

我试过在不同的地方插入timeout: 900 arg,但都没有成功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-26 18:35:11

10分钟的超时是whole build的默认值,因此,如果您在任何steps中添加timeout: 900s选项,它将仅应用于已添加到的步骤。您可以使某个步骤的超时时间大于整个构建超时时间,但如果所有步骤的总和超过构建超时时间,则整个构建过程将失败。此示例显示此行为:

代码语言:javascript
复制
steps:
- name: 'ubuntu'
  args: ['sleep', '600']
  timeout: 800s # Step timeout -> Allows the step to run up to 800s, but as the overall timeout is 600s, it will fail after that time has been passed, so the effective timeout value is 600s.
timeout: 600s # Overall build timeout

也就是说,解决方案是通过在任何步骤之外添加构建超时来扩展总体构建超时,然后您可以在构建失败并出现超时错误之前,在最多24小时内完成构建。

下面的示例应该可以为您解决问题:

代码语言:javascript
复制
steps:
- name: 'ubuntu'
  args: ['sleep', '600']
timeout: 3600s
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65899062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档