EC-CUBE4.1でDocker Composeを使おうとして積んだ…

EC-CUBE4.1でDocker Composeを使おうとして積んだ…

EC-CUBE4.1からデフォルトで入っている公式のDocker Composeファイルが変更され、色々罠があって積んだので備忘録として残しておきます。

公式のDocker Composeファイル

コンテナの起動

EC-CUBE4.1にデフォルトで入っているcの使用方法は公式ドキュメントにぐだぐだと記載されて分かりにくいですが、下記のコマンドで起動することができます。

コンテナの起動

$ docker-compose -f docker-compose.yml -f docker-compose.mysql.yml -f docker-compose.dev.yml up -d

EC-CUBE4のインストール(初回のみ)

$ docker-compose exec -u www-data ec-cube bin/console eccube:install -n

EC-CUBE4のインストール時にユーザーを指定しないと管理画面にログインできなくて積みます。積みました。

問題点

.envが使用できない

上記のコマンドだけでは不十分で .env が使用できません。 EC-CUBE公式は .env は非推奨と謳っていますが、テンプレート機能やログイン認証機能など .env を使用することを前提として実装されている機能がいくつかあります。そのため、.env なしでは EC-CUBE4を完全な形で動作させることができません。そもそも開発環境用に開発されている .env を開発環境で使用できないようにすること自体が意味不明だと思います。

ファイルが分割されている

EC-CUBE4.1からdocker-composeのファイルが分割されており、使用する構成ごとに読み込むファイルを指定する必要があります。最初は良いと思いますが、あとから見たときにどの構成でコンテナを起動したら良いのか分かりづらいと思いました。ローカルとコンテナのファイルを同期させる設定が別ファイルになっていて、同期させずに使用するシチュエーションってある???と思いました。完全に罠だと思います。

あとDocker DesktopのGUIで一括操作ができなくて使いづらい…

旧verのファイルを使用した方が圧倒的にラク

EC-CUBE 4.1.0のdocker composeは改悪されているため、EC-CUBE 4.0.6-p1のファイルを使用した方が簡単に開発環境を構築することができるのでこちらのファイルを使用することをおすすめします。

SSL認証

手元の環境だと、php:7.3-apache-stretchのイメージではcomposerのインストール時にSSLの認証ができなかったので、php:8.0-apacheのイメージでビルドすることで解決しました。php:7.4-apache-stretchでも動作するならこちらでも良いと思います。

参考サイト