2016-07-07 63 views
2

我已经创建了Elixir应用程序(Slack bot),我想将它部署到运行Ubuntu的朋友的服务器上。无需在他的机器上构建应用程序,最好的方法是什么?跨平台药剂部署

我尝试使用exrm创建要部署一个包,但因为我在Windows上开发包仅适用于Windows机器是合适的(erts-7.2.1/bin目录仅包含Windows二进制)。

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

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

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

回答

1

前言:如果可以我会问你的朋友,如果你能在机器上安装仙丹/二郎。你可以走码头路线,但据我所知,这意味着你不能做'热升级'。

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

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

结帐的自述 - 它经历的整个过程非常清楚。

+0

谢谢,会检查出来。但是从我所看到edeliver页面上它需要建立类似于一个目标(因此Linux在这种情况下)的系统上释放。我希望我可以在Windows本地构建和只发送编译应用程序,因为它在二郎山虚拟机运行反正。 –

+1

@MaciejWozniak我克服这个问题是从字面上只是建立在目标服务器上的方式。所以我会建立在服务器上,并部署到服务器 –