2017-08-10 8 views
1

distilleryによってバックアップされたedeliverを使用してリモートにElixirプロジェクトを展開しています。蒸留所を備えたedeliver:systemctlを使用するための `start`コマンドを設定する方法

また、コマンドラインからのリリースを開始、停止、再起動などするファイルsystemd.serviceも正常に作成されました。

しかし、mix edeliver start productionコマンドは、普通の古い良いbin/my_app startシェルコマンドによってsystemdをバイパスしてリリースを実行しているようです。私が望んでいるのは、は、reloadの機能を提供しているので(upstartとは異なり)、ホットアップロードでも常にsystemdを使用することです。

リリースを開始するには、systemdを使用するように誰に通知するのかわかりません。それはdelivery戦略でしょうか?他に何か?私はこの質問がSOには適していないと理解していますが、私はただ迷っています。

したがって、edeliverを超えるdistilleryには、systemdを使用してリリースを開始できますか?はいの場合、どうですか?

答えて

0

FWIW、ここで投稿します。私は厄介なkludgeでこの問題を克服しました。私は、builddeploy、およびpingコマンドをほとんど含まないrelease.shスクリプトを持っています。

# mix edeliver restart production 

for host in `cat .deliver/config | grep PRODUCTION_HOSTS | cut -d '=' -f 2 | sed -e 's/"//g'` 
do 
    echo "Restarting the remote [$host]..." 
    echo `ssh [email protected]$host sudo systemctl restart rates_injector.service` 
done 
echo "Likely restarted." 

基本的に、私は手動でsystemctlためrestartコマンドを発行し、.deliver/configファイルから生産ホストのリストを取得:だから私は次のようでした。

関連する問題