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

pra*_*pra 5 google-app-engine google-cloud-build

使用以下输出构建错误(使用 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.
Run Code Online (Sandbox Code Playgroud)

Rin*_*gil 7

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

在此处输入图片说明

并将其更改AutodetectedCloud Build configuration file手动选择:

在此处输入图片说明

有关更多信息,请参阅此Github 问题


Dav*_*vid 3

Cloudbuild.yaml 应与 App EngineFlexible 配合使用,无需使用自定义运行时。如错误消息中所述,如果在非自定义运行时中部署,则不能将 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' 
Run Code Online (Sandbox Code Playgroud)

===================致:

steps: 
- name: 'gcr.io/cloud-builders/gcloud' 
args: ['app', 'deploy', '[SUBDIRECTORY/app.yaml]'] 
timeout: '1600s' 
Run Code Online (Sandbox Code Playgroud)