如何刷新 Heroku buildpack CACHE_DIR?

Posted

技术标签:

【中文标题】如何刷新 Heroku buildpack CACHE_DIR?【英文标题】:How can I flush the Heroku buildpack CACHE_DIR? 【发布时间】:2012-12-31 08:09:06 【问题描述】:

在我们的 Python/Django 应用程序的开发过程中,我们不小心在 requirements.txt 中引入了包需求,它安装了相互冲突的库版本。 Heroku 已在 python buildpack 指定的 CACHE_DIR 中缓存了损坏的需求,如其buildpack API info page 中所述,似乎对 requirements.txt 文件的任何修改都无法清除损坏包的缓存。我们如何强制 Heroku 完全清空 CACHE_DIR 并从头开始重新安装所有需求和依赖项?

【问题讨论】:

【参考方案1】:

使用heroku-repo插件purge_cache命令:

$ heroku plugins:install heroku-repo
$ heroku repo:purge_cache -a appname

【讨论】:

这很尴尬。 Heroku 上真的没有用于构建/部署的clean 开关吗?我们真的需要这个额外的步骤来丢弃陈旧的缓存吗?【参考方案2】:

我在尝试从源代码安装模块 (django-piston) 时遇到了同样的问题,因为上一个官方版本有点旧,并且缺少一些对我来说至关重要的错误修复。反正之前有一个issue打开过,居然得到了reply from support。

这对我来说似乎有点奇怪,但至少它可以工作(只需在 runtime.txt 中选择任何 python 版本号,重建,然后改回所需的运行时并再次重建)

【讨论】:

笨拙的解决方案,但它解决了我的问题(目前似乎没有更好的解决方案)。谢谢! 知道如何使用自定义 heroku-buildpack-php 做到这一点吗?我正在调整一个以与 Laravel 4 一起使用,我得到了它来编译和部署,但它缺少 pdo_pgsql 所以我想要新的 php.ini 文件,但它仍然卡在 cache_dir 中【参考方案3】:

我能够通过简单地更改 readme.md 文件(添加一些空格)、提交和推送来清除缓存

【讨论】:

以上是关于如何刷新 Heroku buildpack CACHE_DIR?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Python 使用 Heroku buildpack ffmpeg?

应用程序与 buildpack 不兼容 - Heroku/python

将 elixir phoenix 应用程序部署到 heroku - 无法添加 buildpack

在 Heroku 上安装 Buildpack 后的 Python ImportError

Python heroku -app 与 buildpack 不兼容

Heroku/python 无法检测到 set buildpack