2016-07-07 81 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我克服這個問題是從字面上只是建立在目標服務器上的方式。所以我會建立在服務器上,並部署到服務器 –