EC CUBEをDockerで構築時にエラーに遭遇したので、その時の対処方法をまとめました。
環境
・macOS 10.14
・Docker Desktop 2.5.0.1
・EC CUBE 4.0.5
現象
上記環境でEC CUBE付属ファイルでdocker composeを実行すると次のエラーが発生します。
Composer (version 2.0.8) successfully installed to: /var/www/html/composer.phar Use it: php composer.phar Changed current directory to /root/.composer [RuntimeException] No composer.json present in the current directory, 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>]... ERROR: Service 'ec-cube' failed to build : The command '/bin/sh -c curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/bin/composer && composer config -g repos.packagist composer https://packagist.jp && composer global require hirak/prestissimo && chown www-data:www-data /var/www && mkdir -p ${APACHE_DOCUMENT_ROOT}/var && chown -R www-data:www-data ${APACHE_DOCUMENT_ROOT} && find ${APACHE_DOCUMENT_ROOT} -type d -print0 | xargs -0 chmod g+s ;' returned a non-zero code: 1
原因
EC CUBE 4.0.5以前は、PHP Composer 2.xに対応していないためです。
対処方法
EC CUBE付属のDockerfileの58行目あたりのphpコマンドにバージョンを指定するオプションを指定し、再度docker composeを実行します。
「php -- --1」とすることで、Composer 1系の最新版をインストールするようになります。
Dockerfileの編集
# before RUN curl -sS https://getcomposer.org/installer \ | php \ && mv composer.phar /usr/bin/composer \ # after RUN curl -sS https://getcomposer.org/installer \ | php -- --1 \ && mv composer.phar /usr/bin/composer \
EC-CUBE 4 システム構築入門&店舗運営・管理ビギナーズガイド
- 作者:西村 誠
- 発売日: 2019/02/27
- メディア: 単行本(ソフトカバー)