Open8

Azure AppServiceのLinux環境でLaravelのQueue Workerを自動起動したい

やまなみやまなみ

Linux環境だとAzureのWebJobが使えないからスケジューラからqueue:workを叩けない

やまなみやまなみ

systemdもインストールされていないので使えない。
sshからsystemctlとかもインストールしてみたがちゃんと使えなかった

やまなみやまなみ

再起動ごとにsupervisorは無くなってしまうのでコンテナ起動時にインストール→Laravel Queue Workerの設定ファイルを配置・読み込み→supervisor起動までやってもらうようにする

やまなみやまなみ

AppServiceの全般設定のスタートアップコマンドでshを実行するようにしてあげる

sh /home/my_startup.sh
やまなみやまなみ

そのshファイルの中にインストールから起動まで書いてあげる。
home配下はAppServiceでも消えない

apt update && apt install supervisor -y  
cp /home/laravel-queue-worker.conf /etc/supervisor/conf.d/
service supervisor start
やまなみやまなみ

supervisorで起動するとAppService上で設定しているアプリケーション設定の環境設定を読み込んでくれない。
.envからしか環境設定を読み込めないので、結局.envにAzure AppServiceで動かすための設定を書く必要がある。

やまなみやまなみ

動くだけならゴリ押しで行けたけどいい方法はないものか・・・