为什么gcloud SDK的deploy命令会扫描家目录下的文件?
报错根因
gcloud app deploy默认会上传当前执行目录下所有未被忽略规则匹配的文件,触发家目录扫描的核心原因是你部署用的backend目录下存在指向系统家目录的.config软链接,gcloud SDK遍历文件时默认会跟随软链接读取对应路径的内容,因此才会扫描到你家目录下的chrome缓存目录。- 报错里的1000文件数限制是Google App Engine部署时对单目录文件数的默认限制,chrome缓存目录文件数远超阈值所以触发拦截。
可选解决方案
你将~/.config加入.gcloudignore是可用的临时绕过方案,还有两种更稳妥的处理方式:
- 直接删除backend目录下无实际用途的
.config软链接,从根源避免gcloud遍历到无关的系统目录 - 在
.gcloudignore中添加/.config规则,仅忽略当前部署目录下的.config软链接,不会误筛其他位置的同名有效文件
补充规则说明
gcloud app deploy的文件扫描逻辑优先级如下:
- 优先读取部署目录下的
.gcloudignore规则排除文件 - 若不存在
.gcloudignore,会自动复用同目录下.gitignore的忽略规则 - 遍历过程中默认跟随软链接读取目标路径内容,不会自动跳过指向部署目录外的软链接
内容的提问来源于stack exchange,提问作者Caleb Jay
相关产品推荐
相关产品推荐

