3

我有一个 Google App Engine Flex 项目,其中包含以下文件:

  • app.yaml- 定义 App Engine Flex 环境
  • Dockerfile- 基于带有一些附加功能的 Google App Engine 容器
  • cloudbuild.yaml

cloudbuild.yaml内容:

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '--tag=gcr.io/$PROJECT_ID/<projectname>', '.']
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['app', 'deploy']
timeout: '1600s'
images: ['gcr.io/$PROJECT_ID/<projectname>']

这基于以下文档: https ://cloud.google.com/cloud-build/docs/configuring-builds/build-test-deploy-artifacts#deploying_artifacts

我在app deploy命令中收到以下错误:

自定义运行时必须在源目录中恰好具有 [Dockerfile] 和 [cloudbuild.yaml] 之一

没有cloudbuild.yaml它不知道尝试部署应用程序,没有Dockerfile它不知道其中有什么,那么如何仅使用其中一个指定相同的工作流程?

4

2 回答 2

8

我在使用自定义 docker 文件的 flex 应用程序引擎上处理 Django 项目时遇到了同样的问题。我将除 canbuild.yaml 之外的所有项目文件移动到子文件夹中,并在 cloudbuild.yaml 中指定了子文件夹,如下所示

steps:
- name: "gcr.io/cloud-builders/gcloud"
  args: ["app", "deploy", "<subfolder>/app.yaml"]
timeout: "1600s"

这对我有用。

(另请参阅appengine cloudbuild.yaml 是否需要自定义运行时?

于 2019-01-27T19:33:00.607 回答
3

我的方法是相反的。将 cloudbuild 配置放在子文件夹中并使用--config="<folder>

于 2019-05-03T14:28:00.377 回答