【问题标题】:Keter not picking up new bundle凯特没有拿起新的捆绑包
【发布时间】: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


【解决方案1】:

好的,我已经解决了所有问题。大致的步骤是:

  1. tail -f 应用程序和 keter current.log 文件以获取信息
  2. 手动运行 keter keter /opt/keter/etc/keter-config.yaml
    • 这会带来一些问题,比如没有 certificate.pem 文件(我不需要这个,因为我还没有使用 https)
  3. 使用应用程序的日志文件解决数据库连接错误等问题。
    • 我最终没有使用 Keter 来处理这个问题,我只是手动设置了 postgres。

这是一个简短的答案——我不太记得我需要做的所有事情。但是,这里的关键是手动运行 keter 以找出正在发生的任何错误。

【讨论】:

    猜你喜欢
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2016-09-03
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多