【发布时间】:2014-05-11 05:39:22
【问题描述】:
我正在尝试使用 Keter 部署 Yesod 应用程序。我之前向/opt/keter/incoming 添加了一个*.keter 捆绑包,但是因为我在不同的系统上构建了该文件,所以它无法启动。我已经通过在服务器本身上构建我的应用程序解决了这个问题。
然而,现在当一个新的*.keter 包被添加到/opt/keter/incoming/ 时,什么都没有发生。 /opt/keter/log/keter/current.log 没有任何日志消息,因为我第一次部署失败。当我运行 ps aux | grep kete[r] 时,我看到几个 Keter 实例正在运行,所以它看起来确实在运行。
我将制作的*.keter 捆绑包复制到了一个临时目录,并在其中对其进行了压缩/解压缩。这样做之后,我可以直接运行二进制文件,所以我认为没问题。
编辑:我注意到在 Keter 使用的 temp 导演中,那里只有一个二进制文件(没有静态资产或任何东西)。当我尝试运行此二进制文件时,它会因“分段错误”而失败。
尝试运行keter /opt/keter/etc/keter-config.yaml 被证明非常有用——我正在解决一些问题,我认为我只是因为 postgres 身份验证失败。一会回来报告。
【问题讨论】:
-
如果有数据库更改且迁移持续时间过长,或者迁移失败,则启动新的 yesod 实例会出现问题。可能的解决方案:在具有相同环境目标的 cmd-line 中运行它以完成或解决数据库迁移,然后终止任务并重试将 keter 复制到收入文件夹。
标签: haskell deployment yesod keter