2016-07-07 2 views
2

Ubuntuを実行している友人のサーバーに展開したいElixirアプリケーション(Slack bot)を作成しました。彼のマシンにアプリケーションをビルドすることなくこれを行う最善の方法は何ですか?クロスプラットフォームのElixirデプロイメント

私が展開するパッケージを作成するためにexrmを使用してみましたが、私はWindows上で開発していますので、パッケージには、Windowsマシンのみ(erts-7.2.1/bin dirはWindowsのみのバイナリが含まれている)に適しています。

非常に高度なデプロイメントは必要ありません。多分、コンパイルされたアプリケーションをコピーしてそこで実行するだけかもしれません。しかし、私は何をコピーすべきか(ビームファイル?)、後でそれをどこからどのように実行するのか、わからない。

もう1つの問題は、サーバーにErlang/Elixirがないことですが、ドッカーがあるので画像の1つを使用できます。どちらを使うべきですか?ErlangまたはElixirの画像ですか?

アプリケーション自体は、メインのスーパーバイザを起動するアプリケーションの動作(use Application)を使用します。

答えて

1

序文:私はあなたの友人に、マシンにelixir/erlangをインストールできるかどうか尋ねることができます。ドッカーの道を行くことができますが、私が知っている限り、あなたは「ホットアップグレード」をすることはできません。

ubuntuを実行しているサーバにアプリケーションを配備する最も簡単な方法は、Edeliverを使用することです。あなたがそれを設定したら、基本的には、展開は同じくらい簡単です:

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

チェックアウトreadmeファイル - それは非常に明確に全体のプロセスを経ます。

+0

ありがとう、それをチェックします。しかし、edeliverのページで見たことから、ターゲットと似たシステムでリリースを構築する必要があります(その場合はLinux)。私はWindowsでローカルにビルドして、それがErlang VM上で実行されているので、コンパイルされたアプリを送信することができればと思っていました。 –

+1

@MaciejWozniakこの問題を克服する方法は、文字通りターゲットサーバ上に構築することでした。だから、私はサーバー上に構築するだけでなく、サーバーに展開する –

関連する問題