作为展示和演示版本,我想在heroku的免费计划中运行一个matterbrige。为此,我找到了这个nice repository from patcon。他对它进行了分叉,并在我看来对其进行了改进,解释了如何以永久的方式将其作为web dyno运行,因此它还可以像webhooks一样接受hhtp请求。为了部署应用程序,我决定采用git push方法。
我已经将存储库从patcon克隆到我的windows机器上,根据我的需要对其进行配置,并将其推送到heroku。在一开始,这是不起作用的,因为构建环境没有检测到构建包。因此,我将环境变量BUILDPACKS_URL设置为https://github.com/patcon/matterbridge-heroku#master
之后,构建是成功的,但有多个问题。在日志中提到,执行start.sh和envsubst的权限被拒绝。就像Heroku提到的文档一样,我使用chmod +x为start.sh和lib/envsubst创建了.profile文件。
因此,git正在将行尾从windows格式转换为linux格式。而不是权限。最后,我不知道下载是否正常。
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Writing objects: 100% (3/3), 318 bytes | 318.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Matterbridge app detected
remote: -----> Downloading Matterbridge: https://github.com/42wim/matterbridge/releases/download/v1.17.5/matterbridge-linux-amd64
remote: -----> Discovering process types
remote:
remote: -----> Compressing...
remote: -----> Launching...
remote: Released v35
remote: https://???.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
但是,即使我在bin/compile文件中更改了下载的路径和版本,它也总是下载v1.17.5版本。同样,如果我用app.json更改它。老实说,我只能猜测这个文件是做什么的。当我想要通过这个heroku按钮方法部署应用程序来设置环境变量时,我猜它就是。
下面的消息告诉我,matterbridge可执行文件没有下载或者没有放在正确的位置。
2020-06-19T17:37:13.074592+00:00 app[web.1]: [heroku-exec] Starting
2020-06-19T17:37:13.116550+00:00 app[web.1]: ./matterbridge: line 1: Not: command not found
2020-06-19T17:37:13.181167+00:00 heroku[web.1]: Process exited with status 127
2020-06-19T17:37:13.214787+00:00 heroku[web.1]: State changed from starting to crashed
2020-06-19T19:10:11.450748+00:00 heroku[web.1]: State changed from crashed to starting
2020-06-19T19:10:11.759082+00:00 heroku[web.1]: Starting process with command `./start.sh`
2020-06-19T19:10:14.649261+00:00 app[web.1]: [heroku-exec] Starting
2020-06-19T19:10:14.671276+00:00 app[web.1]: ./matterbridge: line 1: Not: command not found
2020-06-19T19:10:14.732134+00:00 heroku[web.1]: Process exited with status 127
2020-06-19T19:10:14.787002+00:00 heroku[web.1]: State changed from starting to crashed
我试着通过heroku ps:exec
查看是否可以看到文件夹结构。但是因为dyno在失败后退出,这是不可能的。我还尝试运行heroku local
来查看该应用程序是否是本地构建的。但事实并非如此。
就像我之前解释的那样,虽然推送和预构建没有下载其他版本,但当我对其进行配置时,我猜测这意味着缓存被激活了。所以我试着用heroku repo:purge_cache
清理缓存。
有没有人能帮我或者给我个帮手。提前感谢
发布于 2020-08-26 02:22:04
哦!我在谷歌上毫不相干地搜索"envsubst heroku“时发现了这一点,但后来看到我的名字,决定点击:)有点疯狂...!
无论如何,我认为你的问题是我硬编码的下载网址基于一个旧的格式命名的二进制资产,42wim正在使用:
https://github.com/42wim/matterbridge/releases/download/vX.Y.Z/matterbridge-linux-amd64
看起来他现在用的是:
https://github.com/42wim/matterbridge/releases/download/vX.Y.Z/matterbridge-X.Y.Z-linux-amd64
因此,只需硬编码直接下载链接或对构建包进行修复就可以了(向后比较意味着找到名称更改的起点,这应该是在2018年12月之后的某个时候,当时我正在做这件事)
https://stackoverflow.com/questions/62477887
复制相似问题