Memo

メモ > 技術 > CMS: ECCube > 導入: Docker

■導入: Docker
Docker Composeを使用してインストールする - < for EC-CUBE 4.0 Developers /> https://doc4.ec-cube.net/quickstart/docker_compose_install 2021年5月にVagrant+Docker環境で検証したときのメモ インストールはブラウザ上で行うようにしている 上記に一応の手順はあるが、PHP7.4やComposerのバージョンアップのことは考えられていないみたい? あまりきちんとメンテナンスされていないのかもしれない WLS2環境でDockerを検証した時のメモは以下に置いている ECCube\WLS2+Docker\メモ.txt ■Dockerfileの調整 Composerのバージョン問題で、「You can not install the EC-CUBE plugin via `composer` command.」のエラーになるので調整する
RUN curl -sS https://getcomposer.org/installer \ ↓ RUN curl -sS https://getcomposer.org/installer | php -- --version=1.10.15 \
プラグイン追加済みのECCubeをインストールする場合、以下も調整する
RUN composer install \ ↓ RUN composer install \ --no-plugins \
PHP7.4で動作させる場合、以下も調整する(FROM php:7.4-apache-stretch は現時点で存在しないみたい)
FROM php:7.3-apache-stretch ↓ FROM php:7.4-apache
■起動
$ docker-compose build $ docker-compose up -d Creating network "html_backend" with driver "bridge" Creating html_mysql_1 ... done Creating html_ec-cube_1 ... done Creating html_mailcatcher_1 ... done Creating html_postgres_1 ... done $ docker-compose ps 指定されたパスが見つかりません。 Name Command State Ports ------------------------------------------------------------------------------------------------------------ html_ec-cube_1 docker-php-entrypoint apac ... Up 0.0.0.0:4430->443/tcp, 0.0.0.0:8080->80/tcp html_mailcatcher_1 mailcatcher --no-quit --fo ... Up 0.0.0.0:1025->1025/tcp, 0.0.0.0:1080->1080/tcp html_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:13306->3306/tcp, 33060/tcp html_postgres_1 docker-entrypoint.sh postgres Up 0.0.0.0:15432->5432/tcp
以下でアクセスを確認 http://192.168.99.100:8080/robots.txt ■インストール 以下にアクセスしてインストール http://192.168.99.100:8080/install 「ようこそ」画面が表示された 「 [推奨] apc拡張モジュールが有効になっていません。」と表示されているが無視して進める 「次へ進む」とエラーになった src\Eccube\Controller\Install\InstallController.php の209行目あたりの以下をコメントアウトすると動いた チェック処理が重すぎるのかもしれない
// 対象ディレクトリ配下のディレクトリ・ファイルの書き込み権限をチェック $finder = Finder::create()->in($eccubeDirs); foreach ($finder as $file) { if (!is_writable($file->getRealPath())) { $noWritePermissions[] = $file; } }
「サイトの設定」は通常どおり作業できた 「データベースの種類」は「PostgreSQL」がデフォルトになっていたが、「MySQL」を選択する
データベースの種類: MySQL データベースのホスト名: mysql データベース名: eccubedb ユーザ名: dbuser パスワード: secret
「データベースの初期化」は通常どおり作業できた インストールが完了したが、「管理画面を表示」からアクセスするとエラーになった。タイム・アウトしている可能性が高い コマンドラインから以下を実行
$ docker exec -it html_ec-cube_1 bash $ php bin/console cache:clear --no-warmup
以下にアクセスできるようになった http://192.168.99.100:8080/ http://192.168.99.100:8080/system/ 以降は基本的にVagrantで起動した場合と同じ手順で大丈夫だった キャッシュの再生性も、コマンドで削除した上でブラウザからアクセスすれば大丈夫だった インストール直後のキャッシュ生成だけ特別重いのかもしれない ■メモ 躓いた箇所をメモしておく 「composer install」を実行すると認証を求められた プラグインを購入する際に登録したメールアドレスとパスワードを入力すると進めた 成功とエラーの両方が表示されたが、どうやら進めているみたい
# composer install Deprecation warning: require.ec-cube/CsvImportProductExt4 is invalid, it should not contain uppercase characters. Please use ec-cube/csvimportproductext4 instead. Make sure you fix this as Composer 2.0 will error. 〜中略〜 Deprecation warning: require.ec-cube/VeriTrans4G is invalid, it should not contain uppercase characters. Please use ec-cube/veritrans4g instead. Make sure you fix this as Composer 2.0 will error. Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`. Prefetching 7 packages ・・・ - Downloading (14%) Authentication required (package-api.ec-cube.net): Username: example@gmail.com Password: (100%) 3: : https://package-api.ec-cube.net/ec-cube/VeriTrans4G/1.2.1/VeriTrans4G-1.2.1.tgz 〜中略〜 3: : https://package-api.ec-cube.net/ec-cube/CsvImportProductExt4/1.0.5/CsvImportProductExt4-1.0.5.tgz Finished: success: 0, skipped: 0, failure: 7, total: 7 Package operations: 7 installs, 0 updates, 0 removals [RuntimeException] You can not install the EC-CUBE plugin via `composer` command. Please use the `bin/console eccube:composer:require ec-cube/csvimportproductext4` instead. install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--ignore-platform-reqs] [--] [<packages>]...

Advertisement