GCP Cloud构建忽略超时设置

问题描述 投票:0回答:1

我使用Cloud Build从存储中复制配置文件,并将应用程序部署到App Engine flex。问题在于,每次构建持续超过10分钟都会失败。我在cloudbuild.yaml中指定了超时时间,但似乎已被忽略。另外,我配置了app/cloud_build_timeout并将其设置为1000。有人可以向我解释这是怎么回事吗?

我的cloudbuild.yaml看起来是这样的:

steps:
  - name: gcr.io/cloud-builders/gsutil
    args: ["cp", "gs://myproj-dev-247118.appspot.com/.env.cloud", ".env"]
  - name: "gcr.io/cloud-builders/gcloud"
    args: ["app", "deploy"]
    timeout: 1000s
timeout: 1600s

我的app.yaml使用自定义env从Dockerfile构建它,看起来像这样:

runtime: custom
env: flex

manual_scaling:
  instances: 1
env_variables:
  NODE_ENV: dev

Dockerfile也没有什么特别的,只是安装依赖项和应用程序构建:

FROM node:10 as front-builder
WORKDIR /app
COPY front-end .
RUN npm install
RUN npm run build:web

FROM node:12
WORKDIR /app
COPY api .
RUN npm install
RUN npm run build
COPY .env .env
EXPOSE 8080
COPY --from=front-builder /app/web-build web-build
CMD npm start
node.js docker google-app-engine google-cloud-platform google-cloud-build
1个回答
0
投票

直接为App Engine Flex应用运行gcloud app deploy时,例如从本地计算机在引擎盖下生成Cloud Build作业来构建映像,然后将该映像部署到GAE(您可以在Cloud Console中看到该版本>云构建)。这个版本有10分钟的超时时间,可以通过以下方式自定义:

gcloud config set app/cloud_build_timeout 1000

现在,这里的问题是您正在Cloud Build本身中发出gcloud app deploy命令。由于每个单独的Cloud Build步骤都在其自己的Docker容器中运行,因此您不能仅添加上一步来自定义超时,因为下一个步骤将使用默认的gcloud设置。

您有几种解决方法:

  • [添加构建步骤,首先使用docker build构建映像,然后将其上传到Google Cloud Registry。您可以在这些步骤上设置自定义超时以满足您的需求。最后,使用glcoud app deploy --image-url=IMAGE-URL部署您的应用。
  • 创建您自己的custom gcloud builder,其中app/cloud_build_timeout设置为您的自定义值。
© www.soinside.com 2019 - 2024. All rights reserved.