Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Dockerfile从Google Cloud Build部署到Google App Engine Flex环境_Docker_Google App Engine_Google Cloud Build - Fatal编程技术网

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

使用Dockerfile从Google Cloud Build部署到Google App Engine Flex环境,docker,google-app-engine,google-cloud-build,Docker,Google App Engine,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/<projectnam

我有一个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>']
步骤:
-名称:“gcr.io/cloud builders/docker”
参数:['build','--tag=gcr.io/$PROJECT_ID/,'.]
-名称:“gcr.io/cloud builders/gcloud”
参数:['app','deploy']
超时:“1600秒”
图像:['gcr.io/$PROJECT_ID/']
这是基于以下位置的文档:

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

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


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

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

steps:
- name: "gcr.io/cloud-builders/gcloud"
  args: ["app", "deploy", "<subfolder>/app.yaml"]
timeout: "1600s"
步骤:
-名称:“gcr.io/cloud builders/gcloud”
参数:[“app”、“deploy”、“/app.yaml”]
超时:“1600秒”
这对我很管用


(另请参见)

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

更改cloudbuild的位置。yamlIt为我工作。每次我想使用cloudbuild进行构建时,都会遇到过期问题。经过一天的尝试,我已经将项目中的每个文件(除了.cloudbuild.yaml和.git文件夹)都移动到了某个子文件夹中。而且效果很好!我喜欢这个解决方案,因为您不需要更改其他文件结构:)您可以在