appengine cloudbuild.yaml 是否需要自定义运行时?

does appengine cloudbuild.yaml requires a custom runtime?

使用以下输出构建错误(使用 Rails 应用程序)

ERROR: (gcloud.app.deploy) There is a cloudbuild.yaml in the current directory, and the runtime field in /workspace/app.yaml is currently set to [runtime: ruby]. To use your cloudbuild.yaml to build a custom runtime, set the runtime field to [runtime: custom]. To continue using the [ruby] runtime, please remove the cloudbuild.yaml from this directory.

Cloudbuild.yaml 应该可以与 App Engine Flexible 一起使用,而无需使用自定义运行时。如错误消息中所述,如果在非自定义运行时中部署,则不能在同一目录中包含 app.yaml 和 cloudbuild.yaml,要补救这种情况,请执行以下步骤:

  1. 将 app.yaml 和其他 ruby 文件移动到一个子目录中(使用您原来的 app.yaml,无需使用自定义运行时)

  2. 在您的 cloudbuild.yaml 步骤下,通过添加指定 app.yaml 路径的第三个参数来修改应用程序部署的参数。

下面是一个例子:

==================来自:

steps: 
- name: 'gcr.io/cloud-builders/gcloud' 
args: ['app', 'deploy'] 
timeout: '1600s' 

===================收件人:

steps: 
- name: 'gcr.io/cloud-builders/gcloud' 
args: ['app', 'deploy', '[SUBDIRECTORY/app.yaml]'] 
timeout: '1600s' 

处理此问题的一种方法是将 cloudbuild.yaml 文件的名称更改为 cloud_build.yaml(您也可以只移动文件),然后转到 Cloud Build 中的触发器:

并将其从 Autodetected 更改为手动选择 Cloud Build configuration file

查看此Github issue了解更多信息