メモ > 技術 > 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>]...