ECCUBEを触りたくてdocker環境で動かすことにしました。
所々一筋縄ではいかなかったのでまとめました。
####1.gitから落とす#
リポジトリURLからブランチ(tags)を確認して、実行するバージョンをローカルに落とす。
https://github.com/EC-CUBE/ec-cube.git
git clone -b ブランチ名 https://リポジトリのURL
git clone -b 4.0.5 https://github.com/EC-CUBE/ec-cube.git
####2.docker-compose.ymlを修正する##
・MySQLを利用したいので、Postgresをコメントアウト
・SSL利用しないのでコメントアウト
・動作が重くなるのでcachedをコメントアウト
・phpmyadminを利用するので追記
docker-compose.ymlサンプルファイル
networks:
backend:
driver: bridge
volumes:
# pg-database:
# driver: local
mysql-database:
driver: local
mailcatcher-data:
driver: local
ignore folder volume
var:
driver: local
vendor:
driver: local
services:
ECCube4
ec-cube:
build:
context: .
args:
# ビルド時のECCubeインストールスクリプトをスキップする場合にtrueを指定する。
# ビルド時点でDBサーバの起動や接続が出来ない、という場合等にエラーとなるため。
SKIP_INSTALL_SCRIPT_ON_DOCKER_BUILD: "true"
ports:
- 8080:80
# - 4430:443
volumes:
# - ".:/var/www/html:cached"
### 同期対象からコストの重いフォルダを除外 #####################
- "var:/var/www/html/var"
- "vendor:/var/www/html/vendor"
networks:
- backend
Postgres
# postgres:
# image: postgres:10
# environment:
# - POSTGRES_DB=eccubedb
# - POSTGRES_USER=dbuser
# - POSTGRES_PASSWORD=secret
# ports:
# - 15432:5432
# volumes:
# - pg-database:/var/lib/postgresql/data
# networks:
# - backend
MySQL
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: eccubedb
MYSQL_USER: dbuser
MYSQL_PASSWORD: secret
volumes:
- mysql-database:/var/lib/mysql
ports:
- 13306:3306
networks:
- backend
restart: always
phpmyadmin
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- mysql:mysql
volumes:
- ./phpmyadmin/sessions:/sessions
ports:
- 4040:80
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mysql
- PMA_USER=root
- PMA_PASSWORD=root
restart: always
depends_on:
- mysql
networks:
- backend
Mailcatcher
mailcatcher:
image: schickling/mailcatcher
ports:
- "1080:1080"
- "1025:1025"
networks:
- backend
Dockerfileの抜粋
####4.docker-composeコマンドの実行
docker-compose up -d
docker-compose exec -u www-data ec-cube bin/console eccube:install
Database Url [sqlite:///var/eccube.db]:
mysql://dbuser:secret@mysql/eccubedb
Mailer Url [null://localhost]:
(Enter押下)
Auth Magic [ランダム値]:
(Enter押下)
Is it OK? (yes/no) [yes]:
(Enter押下)
6.サイトへアクセスする
http://localhost:8080/
http://localhost:8080/admin
『設定→システム設定→システム情報』で想定のバージョンがインストールされていることを確認する。
http://localhost:4040/