跨平台 Elixir 部署
Cross platform Elixir deployment
我已经创建了 Elixir 应用程序(Slack 机器人),我想将其部署到我朋友的服务器 运行ning Ubuntu。无需在他的机器上构建应用程序即可执行此操作的最佳方法是什么?
我尝试使用 exrm 创建一个要部署的包,但由于我在 Windows 上开发,该包仅适用于 Windows机器(erts-7.2.1/bin
目录仅包含 Windows 个二进制文件)。
我不需要非常高级的部署,所以也许我可以只复制已编译的应用程序并将其 运行 放在那里。但我不知道我应该复制什么(光束文件?),然后从哪里以及如何 运行 它。
另一个问题是服务器上没有 Erlang/Elixir,但是有 docker,所以我可以使用其中一张图片。我应该使用哪一个 - Erlang 或 Elixir 图像?
应用程序本身使用启动主主管的应用程序行为 (use Application
)。
前言:如果可以请问你的朋友能不能在机器上安装elixir/erlang。您可以走 docker 路线,但据我所知,这意味着您不能走 'hot upgrades'.
我发现将应用程序部署到服务器 运行 ubuntu 的最简单方法是使用 Edeliver。本质上,一旦设置好,部署就很简单:
mix edeliver build release
mix edeliver deploy release to production
mix edeliver restart production
查看自述文件 - 它非常清楚地介绍了整个过程。
我已经创建了 Elixir 应用程序(Slack 机器人),我想将其部署到我朋友的服务器 运行ning Ubuntu。无需在他的机器上构建应用程序即可执行此操作的最佳方法是什么?
我尝试使用 exrm 创建一个要部署的包,但由于我在 Windows 上开发,该包仅适用于 Windows机器(erts-7.2.1/bin
目录仅包含 Windows 个二进制文件)。
我不需要非常高级的部署,所以也许我可以只复制已编译的应用程序并将其 运行 放在那里。但我不知道我应该复制什么(光束文件?),然后从哪里以及如何 运行 它。
另一个问题是服务器上没有 Erlang/Elixir,但是有 docker,所以我可以使用其中一张图片。我应该使用哪一个 - Erlang 或 Elixir 图像?
应用程序本身使用启动主主管的应用程序行为 (use Application
)。
前言:如果可以请问你的朋友能不能在机器上安装elixir/erlang。您可以走 docker 路线,但据我所知,这意味着您不能走 'hot upgrades'.
我发现将应用程序部署到服务器 运行 ubuntu 的最简单方法是使用 Edeliver。本质上,一旦设置好,部署就很简单:
mix edeliver build release
mix edeliver deploy release to production
mix edeliver restart production
查看自述文件 - 它非常清楚地介绍了整个过程。