質問: 以下のような環境でcakephpで開発を行っています。 * 開発環境 windows->vagrant(centos7)->docker(centos) * ステージング環境 centos7->docker(centos) cakephpの下記のようなコードが開発環境ではエラーにならずに実行されますが、 ステージング環境ではエラーになってしまいます。 ``` $this->helper->hoge() ``` helperをHelperとすればエラーにはならないのですが、 Dockerコンテナは開発、ステージングともに同じDockerfileでビルドして コンテナ作成しており、OSからWebサーバー、phpなどのバージョンも全て同じはずです。 class_exists でのオートロード 上記が原因かと思い、dockerコンテナのファイルシステムを確認(df -T)してみましたが、 extで開発、ステージングともに同じなっています。 ただ開発環境はホスト機でxdebugでデバック実行する為、windows<->vagrant<->dockerで ファイル共有をかけています。このような構成にした場合、ホスト機のwindowsのファイルシステムに依存する形になってしまうのでしょうか?それとも別の原因が考えられますでしょうか? よろしくお願いします。
回答: WindowsホストでVagrantもといVirtualBoxの共有フォルダを利用した場合、ご指摘のように大文字小文字は区別されません。ファイルを列挙すれば大文字小文字の違いを見ることはできますが、実際にはどちらでもアクセスできてしまいます。そして、それをDockerコンテナにマウントした場合も同様でしょう。 参考 Vagrant共有フォルダの罠 — A Day in Serenity (Reloaded) いずれにせよ、そのような問題に遭遇するということはフレームワークがその違いを吸収していない=大文字小文字を揃える前提で作られているわけですから、そのように書くべきかと思います。