AWS CodeDeployのafter installイベントが終わらない
Laravel と Vue.js を使用した Inertia.js SSR アプリケーションの AWS CodeDeploy デプロイメント問題について説明します。
問題
appspec.yml の after install イベントで php artisan inertia:start-ssr を実行していたところ、デプロイメントが終わらなくなりました。
このコマンドは継続的に実行されるタイプのもので、CodeDeploy がコマンド終了を待ち続けます。
誤った解決策
単純にアンパサンドを使用する方法は不適切です。この場合、デフォルトの1時間のタイムアウト期間まで保留状態のままになり、タイムアウト後にデプロイが失敗します。
正しい解決策
以下のコマンドを使用してください。
php artisan inertia:start-ssr > /dev/null 2> /dev/null < /dev/null &
標準出力、標準エラー、標準入力を /dev/null にリダイレクトしながらバックグラウンドで実行することで、CodeDeploy がプロセス完了を待たずに次に進めるようになります。