php - 将 Symfony 项目部署到 App Engine - 错误:文件过多
问题描述
第一次将 Symfony 项目部署到 Google App Engine,运行gcloud app deploy
.
错误:
File upload done.
ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: This deployment has too many files. New versions are limited to 10000 files for this app.
- '@type': type.googleapis.com/google.rpc.BadRequest
fieldViolations:
- description: This deployment has too many files. New versions are limited to 10000
files for this app.
field: version.deployment.files[...]
我怀疑问题是我的 app.yaml 文件:
runtime: php55
api_version: 1
handlers:
# tell appengine where our static assets live
- url: /public
static_dir: public
(我想我至少错过了一些东西来告诉它不要上传供应商的东西,例如忽略)。
我应该如何更新我的 app.ymal 文件以供项目部署?
PS 项目文件夹如下所示:
解决方案
使用gcloud app deploy--verbosity
命令的选项增加部署的详细程度,您将获得所有上传文件的列表。然后使用您的选项指定您想要忽略的选项:skip_files
app.yaml
可选的。skip_files元素指定不将应用程序目录中的哪些文件上传到 App Engine。该值可以是正则表达式,也可以是正则表达式列表。上载应用程序时,要从要上载的文件列表中忽略与任何正则表达式匹配的任何文件名。文件名是相对于项目目录的。
skip_files具有以下默认值:
skip_files: - ^(.*/)?#.*#$ - ^(.*/)?.*~$ - ^(.*/)?.*\.py[co]$ - ^(.*/)?.*/RCS/.*$ - ^(.*/)?\..*$
注意:注意覆盖此配置的默认值。
我可能错了,但是您的项目结构图像表明您的应用程序代码位于src
目录中。如果是这样,我建议将app.yaml
文件移到其中 - 包含app.yaml
正在部署的文件的目录被认为是应用程序/服务的顶级目录 - 它的全部内容将被上传到 GAE。在这种移动之后,您可能需要调整一些路径 - GAE 会考虑与此应用程序/服务顶级目录相关的所有应用程序/服务路径。如果您需要它们,您可以选择性地将项目目录中的一些文件/目录符号链接到src
目录中,部署遵循符号链接,将它们替换为实际内容。
一些相关的帖子:
推荐阅读
- python - 如何使用 tweepy 和 twitter REST API 获取带有特定主题标签的每条推文
- asp.net - 模型正在绑定,但不是来自 ASP.NET Core Web API 中 json 请求正文的单个参数
- extjs - ExtJs 6.2 ComboBox 不发送远程过滤器
- java - Firestore 中的索引是否计数?
- ios - 错误:'结果' 无法构造,因为它没有可访问的初始值设定项
- java - java - 转换传递的引用有什么作用
- sql - ORA-01722: plsql 中的数字无效
- python - 从 Python Pandas 格式化代码 to_latex
- android - ViewPager2的用户输入被禁用时如何添加左右边缘效果
- github - 如何在 github 上生成 codeception 代码覆盖率徽章?