今回は、ちょっとハマったプラグインのインストールテストについて、備忘を兼ねて書いておこうと思います。
環境は以下の通りです。
- 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 オーナーズストアの申請が通りまして、このたび公開となりました。プラグインのページはこちらです。