EC-CUBE 4系のプラグイン開発について その4(モックサーバを使用したプラグインインストールテスト)

Date:

Share post:

今回は、ちょっとハマったプラグインのインストールテストについて、備忘を兼ねて書いておこうと思います。
環境は以下の通りです。

  • Docker Desktop(オーナーズストアのモックサーバがDockerであるため)
  • PHP7.4
  • MySQL5.7
  • EC-CUBE 4.1.2-p4

まずはEC-CUBEの環境作成について、私があまりDockerに慣れていないのですが、ネットを探してみたところ、このような素晴らしいものを公開されている方がいました。Docker for EC-CUBE 4です。こちらは任意バージョンのEC-CUBEとPHP、DBを選択してDocker環境が構築できるようになっています。今回はこちらを使用してDocker環境を作成しました。

Docker for EC-CUBE 4の手順通り進めます。まずはこちらのプロジェクトをcloneします。

$ git clone https://github.com/itaboo1014/docker-for-eccube4.git plugin_test

私は、plugin_testというディレクトリにcloneしました。次にディレクトリ移動を行います。

$ cd plugin_test

Docker for EC-CUBE 4では、先ほども書きましたが任意バージョンのEC-CUBEとPHP、DBを選択してDocker環境が構築できるようになっています。ですのでそれぞれ選択していきます。

make EC-CUBE 4.1.2-p4
   ・
   ・ ソースと環境を用意してくれます。
   ・
make PHP7.4
   ・
   ・ ソースと環境を用意してくれます。
   ・
make MySQL5.7
   ・
   ・ ソースと環境を用意してくれます。
   ・

それぞれの選択が終わったら、コンテナイメージを作成します。

docker-compose build app

作成ができたら、コンテナを起動します。

docker-compose up -d

[+] Running 8/8
 ✔ Network plugin_test_default               Create...                               0.1s 
 ✔ Volume "plugin_test_eccube_db"            Cre...                                  0.0s 
 ✔ Volume "plugin_test_eccube_var"           Cr...                                   0.0s 
 ✔ Volume "plugin_test_eccube_node_modules"  Created                                 0.0s 
 ✔ Container plugin_test-db-1                Started                                 2.2s 
 ✔ Container plugin_test-phpmyadmin-1        Started                                 0.9s 
 ✔ Container plugin_test-mailcatcher-1       Started                                 0.9s 
 ✔ Container plugin_test-app-1               Starte...                               1.0s 

コンテナが起動したら、通常のWebインストールを行います。以下URLにアクセスします。

http://localhost

EC-CUBEのインストールを行います。DBのホスト名やユーザー名等はDocker for EC-CUBE 4に記載がありますので、その通りに行いました。

インストールが完了したら、プラグインの認証キーをあらかじめ設定しておきます。
管理画面にログインして、オーナーズストア > 認証キー設定を開きます。

公式ドキュメントのオーナーズストア経由のインストールをテストするでは

psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';"

というように直接DBを操作していますが、今回は管理画面から設定を行いました。

次に、プラグインを設置します。plugin_testディレクトリで以下を行います。

mkdir ${PWD}/repos

repos というディレクトリが作成されますので、そこにプラグインの圧縮ファイルを設置します。ここで注意点1ですが、実際に申請する際は

Turnstile.tar.gz

というふうにtar.gzという拡張子になりますが、テストの際は

Turnstile.tgz

としないといけないようです。

次に注意点2となりますが、公式ドキュメントのオーナーズストア経由のインストールをテストするでは

// mockサーバを参照するように環境変数を定義
echo ECCUBE_PACKAGE_API_URL=http://127.0.0.1:9999 >> .env

となっているのですが、私の環境ではこの環境変数が通らず、オーナーズストアにプラグインが出てこない状況となっておりました。EC-CUBEのフォーラムにもあるのですが、Docker Desktopの場合は

ECCUBE_PACKAGE_API_URL=http://127.0.0.1:9999

ECCUBE_PACKAGE_API_URL=http://host.docker.internal:9999

としないといけないようです。そのため私は直接.envに上記記述を追加しました。

上記を行なった後に、オーナーズストア経由のインストールをテストするにある通り、以下コマンドでモックサーバを立ち上げます。

docker run -d --rm -v ${PWD}/repos:/repos -e MOCK_REPO_DIR=/repos -p 9999:8080 eccube/mock-package-api

モックサーバを立ち上げたら、管理画面のプラグイン > プラグイン一覧 にある「オーナーズストアから新規追加」ボタンを押下します。

「入手する」ボタンを押下します。

「インストール」ボタンを押下してインストールを行います。

問題がなければ、上記の通りインストールが完了します。

無事にオーナーズストア(モック)からのプラグインインストールができました!

2024.10.07 追記

今までプラグイン開発について書いていましたが、今回作成したプラグインがEC-CUBE オーナーズストアの申請が通りまして、このたび公開となりました。プラグインのページはこちらです。

Related articles

ローカルSMTPメールサーバ(Mailpit)をE...

ローカル環境でのメール送受信テストにつ...

EC-CUBE 4系のプラグイン開発について その...

前回のブログの最後でちょっと書いたので...

EC-CUBE 4系のプラグイン開発について その...

前回、プラグインを一旦有効化させて管理...

EC-CUBE 4系のプラグイン開発について その...

以前から作成したいと考えていたのですが...