如何禁用Heroku的slugignore?能否阻止Heroku移除.git目录?
嘿,我来帮你解答这两个Heroku相关的问题:
1. 能否禁用Heroku的slugignore功能?
首先得明确,Heroku的.slugignore本质是帮你排除不需要部署到slug里的文件,从而减小体积。其实没有所谓“禁用”这个功能的官方开关——因为它只有在你项目里存在.slugignore文件的时候才会生效。
所以如果你不想用这个功能,最简单的做法就是:
- 直接删除项目根目录下的
.slugignore文件,或者 - 清空
.slugignore里的所有规则
要是你从来没创建过.slugignore,那Heroku本来就不会基于这个文件做任何排除操作,完全不用额外处理。
2. 能否禁用Heroku移除.git目录的操作?
Heroku默认会自动移除.git目录,原因是版本控制文件通常不需要部署到生产环境,还能帮你省slug空间。但如果你确实有保留它的需求,有两个可行的办法:
- 用
.sluginclude强制包含.git目录:在项目根目录创建一个.sluginclude文件,在里面添加一行.git/。这样Heroku构建slug时就会把这个目录保留下来,不会删除。不过要注意,这会让slug体积变大,而且.git里可能包含敏感信息(比如配置文件的历史记录),一定要谨慎使用。 - 提取需要的git信息替代保留整个目录:如果你的应用只是需要git的某些信息(比如当前commit哈希、分支名),其实没必要保留整个
.git目录。可以在构建脚本里用命令提取这些信息,比如git rev-parse HEAD获取commit ID,然后把它存入环境变量,启动应用时直接读取环境变量就行。这种方式更安全,也不会增加slug体积。
内容的提问来源于stack exchange,提问作者CheapSteaks
相关产品推荐
相关产品推荐

