当我跑步时
gcloud app deploy app.yaml
哪些文件实际上传?
项目文件夹包含与已部署的应用程序无关的文件夹和文件,例如.git
,.git_ignore
,Makefile
或venv
。
gcloud app deploy
如何决定上传哪些文件?
答案 0 :(得分:10)
tl;博士:您应该使用.gcloudignore
文件,而不要在skip_files
中使用app.yaml
。
尽管前两个答案使用skip_files
文件中的app.yaml
。现在,使用.gcloudignore
或gcloud deploy
命令时会创建一个upload
。默认值取决于您使用的检测到的语言,但是这里是在我的Python项目中自动创建的.gcloudignore
:
# This file specifies files that are *not* uploaded to Google Cloud Platform
# using gcloud. It follows the same syntax as .gitignore, with the addition of
# "#!include" directives (which insert the entries of the given .gitignore-style
# file at that point).
#
# For more information, run:
# $ gcloud topic gcloudignore
#
.gcloudignore
# If you would like to upload your .git directory, .gitignore file or files
# from your .gitignore file, remove the corresponding line
# below:
.git
.gitignore
# Python pycache:
__pycache__/
注意:当同时定义了skip_files
和.gcloudignore
时,这些命令将不起作用。 skip_filesdefinition of the
app.yaml` reference中未提及。
在gcloud
命令中使用全球公认的标准似乎更好,并且采用.gcloudignore
比使用skip_files
更有意义,后者仅在没有App Engine的情况下才有意义。此外,它的工作原理很像参考文件中提到的.gitignore
文件:
.gcloudignore的语法大量来自.gitignore的语法; 参见https://git-scm.com/docs/gitignore或man gitignore查看完整内容 参考。
https://cloud.google.com/sdk/gcloud/reference/topic/gcloudignore
答案 1 :(得分:8)
编辑2018年8月:谷歌引入.gcloudignore
,现在首选,请参阅dalanmiller的答案。
除非您使用skip_files
中的app.yaml
说明,否则他们全部上传。默认情况下,忽略带有.git
点的文件。如果你想增加更多,请注意你要覆盖这些默认值,并且几乎肯定想要保留它们。
skip_files:
- ^Makefile$
- ^venv$
# Defaults
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
另请注意,如果您使用静态处理程序,它们会上传到不同的地方。静态文件被发送到CDN,并且不能用于您的语言运行时(尽管也有办法)。
请务必阅读文档:
https://cloud.google.com/appengine/docs/standard/python/config/appref#skip_files
答案 2 :(得分:0)
gcloud app部署如何决定上传哪些文件?
没有。它默认上传所有内容。如另一个回复中所述,您可以使用app.yaml中的skip_files部分,如下所示:
skip_files:
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
- ^(.*/)?\.bak$
- ^\.idea$
- ^\.git$
您还可以使用--verbosity
参数查看正在部署的文件,例如gcloud app deploy app.yaml --verbosity=debug
或gcloud app deploy app.yaml --verbosity=info
per docs。