EC-CUBE4(4.0.5)をdocker-composeで動かすメモ

技術ネタ

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していく必要があるのであくまでローカルでの動作確認に留めてください。

この記事が気に入ったらいいねをよろしくお願いします
技術ネタ
スポンサーリンク
yusukeをフォローする
とりあえず社長でもやってみますか

コメント

タイトルとURLをコピーしました