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

Pet*_*man 2 google-app-engine docker google-cloud-build

我有一个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>']
Run Code Online (Sandbox Code Playgroud)

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

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

自定义运行时必须在源目录中完全具有[Dockerfile]和[cloudbuild.yaml]中的一个

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

Ulr*_*nus 5

我在使用自定义docker文件的Flex应用程序引擎上的Django项目上遇到了同样的问题。我将所有项目文件(可能的build.yaml除外)移到了一个子文件夹中,并在cloudbuild.yaml中指定了该子文件夹,如下所示

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

那对我有用。

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