フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援
フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援

GAE/PHPで.gcloudignoreにcomposer.lockを入れてはいけない

GAE/SE (Google App Engine Standard Environment) のphp72環境に関する話題です。

php72環境ではapp.yamlの文法が以前と変わっている部分があります。その一つが、デプロイ対象から外すファイルの設定です。

以前はapp.yamlskip_filesという設定でデプロイしないファイルの指定ができたのがphp72から廃止になり、代わりに.gcloudignoreで設定するようになりました。

.gcloudignoreに何を書くべきか、何を書いてはいけないか

デプロイしたくないファイルというのは通常.gitignoreとも重複することが多いはずです。たとえば、VimのスワップファイルやEmacsのバックアップファイルをデプロイ対象から外すのは良いアイデアだと思います。

ところで、PHP 7.2でcomposerを使う場合、次の点に注意が必要です。

  • /vendor/はデプロイ不要
  • /composer.lockはデプロイ必須

逆じゃないの?と思うかもしれませんが、私は逆にしてハマりました。

どうやらphp72環境では/vendor/ディレクトリは特別扱いされているようで、自分の手元の/vendor/をアップロードしても無視されます。代わりに、アップロードされたcomposer.lockを元にcomposer installした結果が反映されます。

ですから、典型的な.gcloudignoreは下記のようになります。

.gcloudignore
.gcloudignore
.git
.gitignore

# Vim swap
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]

# Emacs backup
*~
#*#
.#*

# PHP Composer
composer.phar
/vendor/

グチ

意図はわかるけど、そんな挙動だなんて予想つかないでしょ…。そんなこと書いてあるドキュメントも見当たらないし…。

本稿執筆時点(2018年9月)ではGAE/SE PHP 7.2環境はbetaなので、いずれドキュメント化されるのかもしれません。

参考URL

[紹介元] PHPタグが付けられた新着投稿 – Qiita GAE/PHPで.gcloudignoreにcomposer.lockを入れてはいけない

コメント

記事に戻る

コメントを残す