Symfony4.4をGAE/phpで動かす
GAE/php(Standard Environment)でSymfony4.4を動かす機会があったのでRun Symfony on App Engine standard environmentをみながらSymfonyを動かしました。
発生した問題
「composer install後のauto-scriptsでエラーになる」という問題が発生していました。
原因はauto-scripts実行時にAPP_ENVのdevとして実行されていることがでした。
composer installのオプションでは--no-dev
を指定しているのに、APP_ENVがdev
なので存在しないclassのロードとかが入ってエラーになるということかと思います。
対策方法
composerは –no-dev
オプションを付けてインストールしたかどうかを判定することができます。
$COMPOSER_DEV_MODE
の環境変数に--no-dev
オプションがついてインストールされたば場合は0
そうでなければ1
が入ります。
ちなみに下記のような形のcomposer scriptは、composer 1.9.2 ではうまく実行できませんでした。
|
|
そこでbin/auto-scripts.sh
を用意しました。
|
|
そしてcomposer scriptのpost-install-cmd,post-update-cmdを修正
|
|
最後に
Run Symfony on App Engine standard environmentではcomposer scriptsを削除してdeployしろと書いてありましたが、ローカルからデプロイする場合はちょっと現実的ではない方法だったので苦労しました。
今回紹介した方法でなら、ローカルの環境を傷つけずにローカルからgcloud app deploy
が実行できます。
最後の最後に
今回奮闘したリアルタイムな情報はこちらになります。