perl - 更新 Heroku 上的堆栈

标签 perl heroku

我有一个使用 heroku-buildpack-perl 在那里运行的小应用程序构建包。只是一个小Plack应用程序,它已经运行了大约两年。
但是,Heroku 告诉我它运行的堆栈太旧了,我需要升级它。 “只需运行一个新的部署,应用程序就会安装到一个新的堆栈中!”说他们或类似的东西。
我通过在 git 存储库中创建一个空提交来启动一个新部署,部署运行......但应用程序崩溃了。从日志中我意识到他们更新了 Perl 版本,但部署没有更新我的 XS 库(我使用 local::lib ,不确定这是否是 buildpack 的一部分,或者我当时在创建应用程序时手动设置了它)。
最后,我删除了该应用程序并在新堆栈上重新创建它,运行正常。我不会在任何地方保存任何数据,所以这不是问题。但是,更新堆栈的正确方法是什么?应该有一个选项告诉 Heroku 重建依赖项,对吧?
交叉发布到 PerlMonks .

最佳答案

设置 Heroku 堆栈。在这种情况下到 heroku-20相当于 Ubuntu 20.04

$ heroku stack:set heroku-20
由于您使用的是不同的堆栈,旧缓存可能不兼容。清除缓存:
$ heroku plugins:install heroku-builds
$ heroku builds:cache:purge -a appname
触发重建:
$ git commit --allow-empty -m "Purge cache"
$ git push heroku master
笔记:
您必须确保您使用的 buildpack 与 heroku-20 兼容。 .如果不是,它将无法工作。您将不得不等待维护者更新,使用不同的 buildpack 或自己修复 buildpack 并使用它。
如果你一步一步地遵循这个步骤,它类似于部署一个全新的应用程序。

关于perl - 更新 Heroku 上的堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67839115/

相关文章:

perl - dpan 在包根目录中找不到 Perl 模块

heroku - 有没有 .heroku 忽略之类的东西?

ruby-on-rails - workless 不工作(它没有启动 Heroku worker dyno)

ruby-on-rails - Heroku 上的 OpenSSL::SSL::SSLError

docker - 如何将docker-compose应用部署到heroku?

java - 上下文路径与 webapp-runner 中的 Spring UrlTag 冲突?

perl - 推荐一个 WYSIWYG GUI creator for Perl

perl - 为什么我的 Perl sysread 在从套接字读取时会阻塞?

regex - 在列表中添加零

Perl 哈希值