【问题标题】:Cross platform Elixir deployment跨平台 Elixir 部署
【发布时间】:2016-07-07 08:55:58
【问题描述】:

我创建了 Elixir 应用程序(Slack 机器人),我想将它部署到我朋友的运行 Ubuntu 的服务器上。无需在他的机器上构建应用程序的最佳方法是什么?

我尝试使用 exrm 创建要部署的包,但由于我是在 Windows 上开发的,因此该包仅适用于 Windows 机器(erts-7.2.1/bin dir 仅包含 Windows 二进制文件)。

我不需要非常高级的部署,所以也许我可以复制已编译的应用程序并在那里运行它。但我不知道我应该复制什么(beam 文件?),然后从哪里以及如何运行它。

另一个问题是服务器上没有 Erlang/Elixir,但是有 docker,所以我可以使用其中一个图像。我应该使用哪一个 - Erlang 或 Elixir 图像?

应用程序本身使用启动主主管的应用程序行为 (use Application)。

【问题讨论】:

    标签: elixir exrm


    【解决方案1】:

    前言:如果可以,我会问你的朋友是否可以在机器上安装 elixir/erlang。你可以走 docker 路线,但据我所知,这意味着你不能进行“热升级”。

    我发现将应用程序部署到运行 ubuntu 的服务器的最简单方法是使用 Edeliver。本质上,一旦设置好,部署就很简单:

    mix edeliver build release 
    mix edeliver deploy release to production
    mix edeliver restart production
    

    查看自述文件 - 它非常清楚地介绍了整个过程。

    【讨论】:

    • 谢谢,会检查的。但是从我在 edeliver 页面上看到的内容来看,它需要在类似于目标系统的系统上构建版本(在这种情况下是 Linux)。我希望我可以在 Windows 上本地构建并发送已编译的应用程序,因为它无论如何都在 Erlang VM 上运行。
    • @MaciejWozniak 我克服这个问题的方法就是在目标服务器上构建。所以我会在服务器上构建并部署到服务器
    猜你喜欢
    • 2019-09-14
    • 2010-10-11
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 2023-03-19
    • 2011-06-30
    • 1970-01-01
    • 2010-10-05
    相关资源
    最近更新 更多