【发布时间】:2014-07-24 11:28:07
【问题描述】:
这是一个旧应用程序,在 Heroku 上运行了大约两年。现在突然间,当我部署(标准 git push)时,它会在常规和一次性 dynos 上破坏 Python 解释器。这是它的样子:
$ heroku run python
Running `python` attached to terminal... up, run.8338
python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
进一步推动,heroku restart,将测功机缩放到零并备份,但这一切都无法解决。
我能想象到的与此问题相关的部署中包含的唯一更改是:gevent 从 0.13.6 升级到 1.0.1 并引入了 runtime.txt(之前没有,导致 2.7 .4,现在有一个用于 2.7.6)。
但是,我将所有这些都回滚到没有效果。事实上,我返回了大约 30 次提交(部署可能包含五个)并推送了它,但应用程序仍然损坏。
使用heroku rollback 回滚是我发现将应用程序恢复到可用状态的唯一方法。但这当然无助于我前进。
什么可能导致这种情况?我能以某种方式从头开始重建我的整个应用环境吗?
编辑 1:我在一次性测功机中打开了一个 shell,我可以在那里看到 libpython2.7.so.1.0 文件:
/ $ ls -la /app/.heroku/python/lib/libpython2.7.so.1.0
-r-x------ 1 u49295 49295 5694572 2014-06-03 23:39 /app/.heroku/python/lib/libpython2.7.so.1.0
当然我不知道它是否应该是这样。
【问题讨论】: