2016-12-19 6 views
1

ためにsystemdは、ここで私は、サーバー上の私のフェニックス/エリクサーアプリケーションをデプロイしています方法は次のとおりです。Edeliverフェニックス/エリクサーアプリケーション

mix edeliver stop production --verbose 
mix edeliver build release --verbose 
mix edeliver deploy release to production --verbose 
mix edeliver start production --verbose 

それは限り、それはこの方法を実行されていて動作します。

自分のウェブサイト用のシステムユニットを作成しました。私はそれをチェックしました - それはうまく動作し、開始し、停止します。それから私は自分のウェブサイトを展開していましたが、実行していたサービスはもう実行されていません。ウェブサイト自体が実行されている障害状態です。

上記の4つのコマンドにsystemd unit-serviceを組み込むにはどうすればよいですか?つまり、edeliverは、私のウェブサイト(systemd)のサービスを「sudo systemctl start | stop my_website」と実行して停止する必要があります。それとも別の方法がありますか?

+1

私はアイデアが生産されている間に新しいリリースが構築され、展開されていることだと思いますダウンタイムを避けるために 'mix edeliver restart production 'を使う前にまだ動いています。 –

答えて

2

edeliverupstart scripts hardcodedを使用します。つまり、リモートでsudo stop blahを実行するだけです。

は、おそらく、より良く、より堅牢なソリューションがありますが、私は個人的に、リモートで私の展開のユーザーのエイリアスを設定することにより、これを克服:

alias start='systemctl enable' 
alias stop='systemctl disable' 
+0

この暗黙的な動作を修正すると、良いPRになる可能性があります。 – sobolevn