今回ターゲットにするのは、EC-CUBE3です。
なぜいまさらEC-CUBE3なのかは、既存のサイトがEC-CUBE3で運用されているからです。
この手順でいれた場合の注意ですが
- DBは永続化されません。(Dockerを落とすと消えます)
- プラグイン等の動作確認は行なえますが、↑により、落とすと消えてしまいます。
まずは、dockerを利用できるように以下ファイルをいれておきます。
brew install docker --cask
open /Applications/Docker.app #起動します
docker-composeが利用できるか確認します。
docker-compose --version
docker-compose version 1.29.2, build 5becea4c
本家サイトでは、EC-CUBE4以降であれば、docker-compose.ymlファイルまで用意してあるので、そちらを利用してください。(EC-CUBE3系はない)
EC-CUBE3系なので、以下を利用していきます。
git clone https://github.com/nanasess/docker-ec-cube3.git
cd docker-ec-cube3
そのままだとリポジトリが古いみたいなので、以下を修正します。
docker-compose.ymlとeccube3/Dockerfileの2ファイルを変更します。
docker-compose.yml: - ECCUBE_REPOS=https://github.com/EC-CUBE/ec-cube.git
eccube3/Dockerfile:ARG ECCUBE_REPOS=https://github.com/EC-CUBE/ec-cube.git
↓
docker-compose.yml: - ECCUBE_REPOS=https://github.com/EC-CUBE/ec-cube3.git
eccube3/Dockerfile:ARG ECCUBE_REPOS=https://github.com/EC-CUBE/ec-cube3.git
起動していきます。
docker-compose up -d
以下のエラーが出てしまいます。
=> ERROR [ 7/12] RUN cd /var && rm -r /var/www && git clone --depth=50 -b master https://github.com/EC-CUBE/ec-cube3.git /var/www 0.7s
------
> [ 7/12] RUN cd /var && rm -r /var/www && git clone --depth=50 -b master https://github.com/EC-CUBE/ec-cube3.git /var/www:
#12 0.315 Cloning into '/var/www'...
#12 0.681 warning: Could not find remote branch master to clone.
#12 0.681 fatal: Remote branch master not found in upstream origin
------
executor failed running [/bin/sh -c cd /var && rm -r /var/www && git clone --depth=50 -b ${ECCUBE_BRANCH} ${ECCUBE_REPOS} ${ECCUBE_PATH}]: exit code: 128
ERROR: Service 'eccube3' failed to build : Build failed
これは、masterブランチがないよということでした。
#12 0.681 warning: Could not find remote branch master to clone.
こちらで確認してみます。
masterというブランチはなく、3.0, 3.1, hotfixしかありません。
ファイルを修正します。今回は、3.0系を利用したいので、3.0にします。
docker-compose.yml
- ECCUBE_BRANCH=master
↓
- ECCUBE_BRANCH=3.0
eccube3/Dockerfile
ARG ECCUBE_BRANCH=master
↓
ARG ECCUBE_BRANCH=3.0
再度、実行します。
docker-compose up -d
Creating docker-ec-cube3_mailcatcher_1 ... done
Creating docker-ec-cube3_db_1 ... done
Creating docker-ec-cube3_eccube3_1 ... done
成功しました。
以下で、確認します。
フロント画面: http://localhost:8080
管理者画面: http://localhost:8080/admin ※ID: admin / PW: password
メール: http://localhost:1080/ ※注文時のメール等確認可能
フロント画面を立ち上げて、以下が確認できればOK
管理画面から確認すると、以下のバージョンでした。(2022/07/24時点)
システム情報
EC-CUBE
3.0.18-p4
サーバーOS
Linux 498bf2a1ced2 5.10.76-linuxkit #1 SMP Mon Nov 8 10:21:19 UTC 2021 x86_64
DBサーバー
PostgreSQL 8.4.20 on x86_64-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17), 64-bit
WEBサーバー
Apache/2.4.10 (Debian)
PHP
7.1.0 (Core, date, libxml, openssl, pcre, sqlite3, zlib, ctype, curl, dom, fileinfo, filter, ftp, hash, iconv, json, mbstring, SPL, PDO, session, posix, Reflection, standard, SimpleXML, pdo_sqlite, Phar, tokenizer, xml, xmlreader, xmlwriter, mysqlnd, apache2handler, gd, mcrypt, pdo_mysql, pdo_pgsql, soap, zip)
HTTPユーザーエージェント
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36
メールもこのように確認できました。
ソースの修正等は、コンテナ内に入って行います。
docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------------------
docker-ec-cube3_db_1 /docker-entrypoint.sh postgres Up 5432/tcp
docker-ec-cube3_eccube3_1 /bin/sh -c /wait-for-db.sh Up 0.0.0.0:8080->80/tcp
docker-ec-cube3_mailcatcher_1 sh -c mailcatcher --no-qui ... Up 0.0.0.0:1025->1025/tcp,
0.0.0.0:1080->1080/tcp
docker exec -it docker-ec-cube3_eccube3_1 /bin/bash
ログは、コンテナに入ってから以下で確認できます。
cd app/log/
ls
admin_site_2022-07-24.log front_site_2022-07-24.log site_2022-07-24.log
DBの中身を見たい場合は、DBのコンテナに入ってから確認します。
docker exec -it docker-ec-cube3_db_1 /bin/bash
デフォルトのユーザは、postgresになります。
psql -U postgres
postgres=# \l
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権
-----------+----------+------------------+-------------+-------------------+-----------------------
cube3_dev | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres
: postgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres
: postgres=CTc/postgres
(4 行)
プラグインもインストールすることができました。
ただし、有効化を実行した際にシステムエラーが発生する場合がありました。
何度か、有効化を行うと、成功して有効になりました。