# Docker compose 使って ec-cube ローカル開発
Git clone
# SSH
git@github.com:EC-CUBE/ec-cube.git
# HTTP
https://github.com/EC-CUBE/ec-cube.git
デフォルトでは Sqlite になりますが、mysql に変更して docker-compose.yml ファイルをカスタマイズします。
version: "3"
networks:
backend:
driver: bridge
volumes:
mailcatcher-data:
driver: local
mysql-database:
driver: local
### ignore folder volume #####
var:
driver: local
vendor:
driver: local
node_modules:
driver: local
services:
### ECCube4 ##################################
ec-cube:
### ローカルでビルドする場合は以下のコマンドを使用します
## docker build -t ec-cube --no-cache --pull --build-arg TAG=8.1-apache .
## docker tag ec-cube ghcr.io/ec-cube/ec-cube-php:8.1-apache
image: ${REGISTRY:-ghcr.io}/${IMAGE_NAME:-ec-cube/ec-cube-php}:${TAG:-8.1-apache}
ports:
- 8000:80
# restart: "always"
volumes:
### 同期対象からコストの重いフォルダを除外 #####################
- "var:/var/www/html/var"
- "vendor:/var/www/html/vendor"
- "node_modules:/var/www/html/node_modules"
- ".:/var/www/html:cached"
environment:
# EC-CUBE environments
USER_ID: ${UID:-}
GROUP_ID: ${GID:-}
APP_ENV: "dev"
APP_DEBUG: 1
DATABASE_URL: "mysql://dbuser:secret@mysql/eccubedb"
DATABASE_SERVER_VERSION: 5.7
DATABASE_CHARSET: "utf8mb4"
MAILER_DSN: "smtp://mailcatcher:1025"
# ECCUBE_AUTH_MAGIC: "<change.me>"
# TRUSTED_HOSTS: '^127.0.0.1$$,^localhost$$'
ECCUBE_LOCALE: "ja"
ECCUBE_TIMEZONE: "Asia/Tokyo"
ECCUBE_CURRENCY: "JPY"
# ECCUBE_ADMIN_ROUTE: "admin"
# ECCUBE_USER_DATA_ROUTE: "user_data"
# ECCUBE_ADMIN_ALLOW_HOSTS: []
# ECCUBE_FORCE_SSL: false
# ECCUBE_TEMPLATE_CODE: "default"
# ECCUBE_COOKIE_NAME: "eccube"
# ECCUBE_COOKIE_PATH: "/"
# ECCUBE_COOKIE_LIFETIME: 0
# ECCUBE_GC_MAXLIFETIME: 1440
ECCUBE_ADMIN_USER: "admin"
ECCUBE_ADMIN_PASS: "password"
depends_on:
- mysql
networks:
- backend
mysql:
image: mysql:5.7
platform: linux/amd64
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: dbuser
MYSQL_PASSWORD: secret
volumes:
- mysql-database:/var/lib/mysql
- ./dockerbuild/grant_to_dbuser.sql:/docker-entrypoint-initdb.d/grant_to_dbuser.sql
ports:
- 13306:3306
networks:
- backend
healthcheck:
test: mysqladmin ping
interval: 3s
timeout: 3s
retries: 3
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_HOST: mysql
PMA_USER: dbuser
PMA_PASSWORD: secret
ports:
- "8080:80"
# restart: always
depends_on:
- mysql
networks:
- backend
### Mailcatcher ##################################
mailcatcher:
image: schickling/mailcatcher
ports:
- "1080:1080"
- "1025:1025"
networks:
- backend
# コンテナ起動
# コンテナの起動
docker-compose up -d
# 初回はインストールスクリプトを実行
# `www-data` ユーザで実行
# eccube:install コマンドの対話モードは使用ないので、非対話モード(-n オプション)を付与
docker-compose exec -u www-data ec-cube bin/console eccube:install -n