ec-cubeをエラーで動かせず、最初からやり直したい方法です。
s1. Docker環境のセットアップ
docker-compose.ymlの修正
yamlvolumes:
-"./var/www/html" #ホストのディレクトリをコンテナにマウント
-"var:/var/www/html/var" #パフォーマンスのための個別ボリュームに
-"vendor:/var/www/html/vendor"
-"node_modules:/var/www/html/node_modules"
プラットフォーム設定(Apple Silicon Macの場合)
yamlservices:
ec-cube:${REGISTRY:-ghcr.io}/${IMAGE_NAME:-ec-cube/ec-cube-php}:${TAG:-8.1-apache}
platform: linux/amd64 #エミュレーションモードで実行 EC-CUBEはAppleシリコンは4.30ではarm64に対応しておらず、代わりにamd64で対応
Docker環境の起動
bashdocker-compose down -v # 既存のコンテナとボリュームを削除
docker-compose up -d # 環境を起動
2. EC-CUBEのインストール
データベースのセットアップ
bashdocker-compose exec ec-cube bin/console eccube:install
インストールウィザードでは以下のデフォルト設定を利用:
認証キー: 自動生成値
信頼ホスト:
^127\.0\.0\.1$,^localhost$
データベースURL:
sqlite:///var/eccube.db
メールDSN:
null://null または smtp://mailcatcher:1025
4. 動作確認
- フロントエンド: http://localhost:8080/
- 管理画面 : http://localhost:8080/admin
ログインID: admin(初期ID)
パスワード: デフォルト値(通常は「password」または「admin」)
管理画面の「オーナーズストア」→「プラグイン」→「インストールプラグイン」でRentalプラグインが有効になっていることを確認。
5. トラブルシューティング・注意点
マウント関連
- ホストのディレクトリをコンテナにマウントする設定(.:/var/www/html)が重要
- var、vendor、node_modulesは個別ボリュームとしてマウントされ、ホスト側の変更が直接反映されない
プラットフォーム関連
- Apple Silicon Macでは、EC-CUBEバージョン4.30現在platform: linux/amd64の設定が必要
- Docker Desktopの設定でRosettaエミュレーションが有効になっているか確認
データベース関連
- SQLiteを使用する場合、パスが正しく設定されているか確認
- 初回インストールでは必ずデータベースが初期化される
開発時の注意点
- ホスト側で編集したファイルは、マウント設定が正しければコンテナ内に反映される
- プラグインの変更後はキャッシュクリアが必要