使用 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 项目,其中包含以下文件:
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
命令中遇到以下错误:
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>
我有一个 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
命令中遇到以下错误:
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>