目次
EC-CUBE4をローカルで動かすための備忘録
どうも、合同会社Celalinkの代表をやっているヤナイ( @yusuke_celalink )です。
普段PHPは触らないのですが、仕事の相談でEC-CUBE4の動きを調べる必要があったのでローカル環境に構築する必要があったのでDockerで動かしてみました。
今回は備忘録として残しておきます。
ソースコードの取得
公式サイトからパッケージを取得するか、Githubからcloneして取得するかの2通りになります。
ローカル環境で動作を確認するだけであればGithubからの取得の方が手軽です。
本番環境での運用も考えている場合はパッケージ版を利用してください。
パッケージ版のダウンロードには会員登録をする必要があります。
インストール手順
公式ドキュメントはこちらになります。
インストール方法 – < for EC-CUBE 4.0 Developers />
今回はDocker上で動かしたかったので「Docker Composeを使用してインストールする」を参考に実行しました。
公式サイトからパッケージをダウンロードして実行する場合
私が公式パッケージのバージョンは4.0.5です。
4.0.5のパッケージでそのままdocker-composeを実行すると
4.0.5のパッケージを解答して下記を実行すると途中でエラーが発生します。
$ docker-compose up -d
【エラー内容】
Changed current directory to /root/.composer
[RuntimeException]
No composer.json present in the current directory (./composer.json), this may be the cause of the following exception.
[InvalidArgumentException]
Could not find package hirak/prestissimo.
Did you mean this?
hirak/prestissimo
require [--dev] [--dry-run] [--prefer-source] [--prefer-dist] [--fixed] [--no-suggest] [--no-progress] [--no-update] [--no-install] [--no-scripts] [--update-no-dev] [-w|--update-with-dependencies] [-W|--update-with-all-dependencies] [--with-dependencies] [--with-all-dependencies] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--] [<packages>]...
原因としてはComposerのバージョンが2系になってしまっているためです。
こちらのプルリクエストの通りにDockerFileを修正します。
Dockerfile は Composer1 に固定 by nanasess · Pull Request #4746 · EC-CUBE/ec-cube · GitHub
Composerを1に固定するために下記の1行をDockerFileに追記します。
&& composer selfupdate --1 \
修正後はこんな感じ
RUN curl -sS https://getcomposer.org/installer \
| php \
&& mv composer.phar /usr/bin/composer \
&& composer selfupdate --1 \
&& composer config -g repos.packagist composer https://packagist.jp \
&& composer global require hirak/prestissimo \
&& chown www-data:www-data /var/www \
修正後にもう一度docker-composeを実行すると問題なく実行することができました。
次回のリリースで4.0.6になると解消されるようです。
Gitから取得して実行する場合
パッケージ版をダウンロードするよりも手間がかかりません。
GitHub – EC-CUBE/ec-cube: EC-CUBE is the most popular e-commerce solution in Japan
こちらは最新の状態になっているのでcloneしてそのままdocker-composeで実行できるので簡単です。
パッケージ版とは異なることと、常に最新版をpullしていく必要があるのであくまでローカルでの動作確認に留めてください。
コメント