8
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ECCUBEをdockerで動かす

Last updated at Posted at 2022-01-16

ECCUBEを触りたくてdocker環境で動かすことにしました。
所々一筋縄ではいかなかったのでまとめました。

####1.gitから落とす#
リポジトリURLからブランチ(tags)を確認して、実行するバージョンをローカルに落とす。

ECCUBEリポジトリのURL
https://github.com/EC-CUBE/ec-cube.git
ブランチの指定方法
git clone -b ブランチ名 https://リポジトリのURL
(例)4.0.5の環境を利用する場合のコマンド
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サンプルファイル
version: "3"

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

####3.Dockerfileを修正する ・composerを最新にすると動かなくなるのでバージョンを指定する。
Dockerfileの抜粋
RUN curl -sS https\://getcomposer.org/installer \ | php \ && mv composer.phar /usr/bin/composer \ && composer selfupdate --1 \ && composer config -g repos.packagist composer https\://packagist.jp \ && composer global require hirak/prestissimo \ && chown www-data:www-data /var/www \ && mkdir -p \${APACHE_DOCUMENT_ROOT}/var \ && chown -R www-data:www-data \${APACHE_DOCUMENT_ROOT} \ && find ${APACHE_DOCUMENT_ROOT} -type d -print0 \ | xargs -0 chmod g+s \ ;

####4.docker-composeコマンドの実行

コンテナの作成と開始
docker-compose up -d
ECCUBEのインストール
docker-compose exec -u www-data ec-cube bin/console eccube:install
DBの設定 ※MySQLの場合以下を入力する。
Database Url [sqlite:///var/eccube.db]:
mysql://dbuser:secret@mysql/eccubedb
以降Enter押下で完了
Mailer Url [null://localhost]:
(Enter押下)

Auth Magic [ランダム値]:
(Enter押下)

Is it OK? (yes/no) [yes]:
(Enter押下)

6.サイトへアクセスする

メインページ
http://localhost:8080/
管理者ページ[ID_admin][pass_password]
http://localhost:8080/admin

『設定→システム設定→システム情報』で想定のバージョンがインストールされていることを確認する。
システム情報.png

phpMyAdmin
http://localhost:4040/

phpMyAdminも問題なく表示される。
phpmyadmin.png
####ECCUBEをローカルで触れるようになりました!!

8
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?