使用 Dockerfile 从 Google Cloud Build 部署到 Google App Engine Flex 环境

Deploy to Google App Engine Flex environment from Google Cloud Build using Dockerfile

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

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 命令中遇到以下错误:

A custom runtime must have exactly one of [Dockerfile] and [cloudbuild.yaml] in the source directory

没有 cloudbuild.yaml 它不知道尝试部署应用程序,没有 Dockerfile 它不知道里面有什么,所以我如何指定相同的工作流程只有其中之一?

我 运行 在使用自定义 docker 文件的 flex 应用程序引擎上处理 Django 项目时遇到了同样的问题。我将除 couldbuild.yaml 以外的所有项目文件都移到了一个子文件夹中,并在 cloudbuild.yaml 中指定了子文件夹,就像这样

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

这对我有用。

(另见

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