gpt4 book ai didi

node.js - GCP Cloud 构建忽略超时设置

转载 作者:太空宇宙 更新时间:2023-11-03 23:47:47 24 4
gpt4 key购买 nike

我使用 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 使用自定义环境,从 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

最佳答案

当直接为 App Engine Flex 应用运行 gcloud app deploy 时(例如,从本地计算机),它会在后台生成一个 Cloud Build 作业来构建镜像,然后将其部署到 GAE(您可以在 Cloud Console > Cloud Build 中看到该构建)。此构建有 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 设置为您的自定义值。您可以从 default gcloud builder Dockerfile 得出它并添加 /builder/google-cloud-sdk/bin/gcloud config set app/cloud_build_timeout 1000

关于node.js - GCP Cloud 构建忽略超时设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60431732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com