Python 如何在运行“gcloud app deploy”时忽略文件?
当我跑的时候Python 如何在运行“gcloud app deploy”时忽略文件?,python,google-app-engine,google-app-engine-python,Python,Google App Engine,Google App Engine Python,当我跑的时候 gcloud app deploy app.yaml 哪些文件被上传 项目文件夹包含与部署的应用程序无关的文件夹和文件,如.git、.git\u ignore、Makefile或venv gcloud应用程序如何部署决定上传哪些文件?编辑2018年8月:谷歌推出了.gcloudignore,这是现在的首选,请参见dalanmiller的回答 它们都已上载,除非您使用app.yaml中的skip_files说明。默认情况下,将忽略带有点状.git的文件。如果您想添加更多,请注意您
gcloud app deploy app.yaml
哪些文件被上传
项目文件夹包含与部署的应用程序无关的文件夹和文件,如.git
、.git\u ignore
、Makefile
或venv
gcloud应用程序如何部署
决定上传哪些文件?编辑2018年8月:谷歌推出了.gcloudignore
,这是现在的首选,请参见dalanmiller的回答
它们都已上载,除非您使用
app.yaml
中的skip_files
说明。默认情况下,将忽略带有点状.git
的文件。如果您想添加更多,请注意您正在覆盖这些默认值,并且几乎肯定希望保留它们
skip_files:
- ^Makefile$
- ^venv$
# Defaults
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
还请注意,如果使用静态处理程序,它们将上载到不同的位置。静态文件被发送到CDN,在您的语言运行时不可用(尽管也有解决方法)
请务必阅读以下文档:
gcloud应用程序部署如何决定上载哪些文件
没有。默认情况下,它会上载所有内容。如另一个回复中所述,您可以使用app.yaml中的部分,如下所示:
skip_files:
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
- ^(.*/)?\.bak$
- ^\.idea$
- ^\.git$
您还可以使用--verbosity
参数查看正在部署哪些文件,即gcloud app deploy app.yaml--verbosity=debug
或gcloud app deploy app.yaml--verbosity=info
tl;dr:您应该使用.gcloudignore
文件,而不是app.yaml
中的跳过文件
而前面的两个答案使用了app.yaml
文件中的skip_文件。现在,在使用gcloud deploy
或upload
命令时,会创建一个.gcloudignore
。默认值将取决于您正在使用的检测到的语言,但这里是在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__/
注意:如果同时定义了跳过_文件
,并且存在.gcloudignore
,则这些命令将不起作用。报告中没有提到这一点
在gcloud
命令中采用全球公认的标准似乎更好,采用.gcloudignore
比使用skip_文件
更有意义,后者只与没有App Engine的应用程序相关。此外,它的工作原理非常类似于参考文献中提到的.gitignore
文件:
.gcloudignore的语法大量借用了.gitignore的语法;
看到或忽略一个完整的
参考资料
谢谢。有没有办法ls
上传哪些文件?所以我可以修改跳过文件设置。不确定。他们不断添加功能,我认为云控制台中有一些东西可以让你检查部署的代码,但我从来没有使用过它们。@Chris小心这个例子-它覆盖了跳过_文件
默认值,这可能会导致问题,请看:附加问题:我使用的是“灵活的环境”。所以我的静态文件被部署到同一个计算实例,而不是CDN,对吗?可以吗?或者我应该采取行动?这包括:相关:也包括: