VPSのサムネイル

VPS

VPSのDockerアプリケーションイメージでEC-CUBEサイトを超速で構築する方法

Dockerのアプリケーションイメージを用意しているVPSサービスを使って、EC-CUBEサイトを超速で構築する方法を解説します。この方法なら10分もあればEC CUBEサイトを高速VPSで構築できます。

編集ノート:SERVERSUSでは、パートナーリンクからコミッションを得ています。コミッションが記事の意見や、サービスの評価に影響を与えることはありません。

DockerのアプリテンプレートがあるVPSからインスタンスを作成

LinuxへのDockerのインストールは現在はかなり簡単にはなっていますが、多くのVPSサービスがDockerがシステムに組み込まれた状態のOSイメージを用意しているので、そちらを使うのがベストです。

DockerのアプリケーションテンプレートがあるVPSサービスで、かつ月商100万円程度(EC-CUBEクラウド・Liteプランでは月額13,300円)に対応するVPSプランは以下のページで詳しくガイドをしていますので、そちらもご参照ください。

サービスを選んでインスタンスを作成したら、SSHでサーバーにログインをします。

docker-compose.ymlを作成

インスタンスにSSHでログインしたら、任意のディレクトリでdocker-compose.ymlを作成します。

ec-cubeというディレクトリを作って、そこにdocker-compose.ymlを作成すると管理しやすいでしょう。

docker-compose.ymlはEC-CUBE公式のものをベースにしています。

ec-cube / docker-compose.yml

networks:
  backend:
    driver: bridge

volumes:
  mailcatcher-data:
    driver: local

  ### ignore folder volume #####
  var:
    driver: local
  vendor:
    driver: local
  node_modules:
    driver: local

services:
  ### ECCube4 ##################################
  ec-cube:
    image: ${REGISTRY:-ghcr.io}/${IMAGE_NAME:-ec-cube/ec-cube-php}:${TAG:-8.1-apache}
    ports:
      - 80:80
      - 443:443
    volumes:
      - "var:/var/www/html/var"
      - "vendor:/var/www/html/vendor"
      - "node_modules:/var/www/html/node_modules"
    environment:
      APP_ENV: "prod"
      APP_DEBUG: 0
      DATABASE_URL: "sqlite:///var/eccube.db"
      DATABASE_SERVER_VERSION: 3
      DATABASE_CHARSET: 'utf8'
      MAILER_DSN: "smtp://mailcatcher:1025"
      ECCUBE_AUTH_MAGIC: "<change.me>"
      ECCUBE_TIMEZONE: "Asia/Tokyo" # タイムゾーン
      ECCUBE_CURRENCY: "JPY" # 通貨
      ECCUBE_ADMIN_USER: "admin" # 管理画面の初期ユーザー名
      ECCUBE_ADMIN_PASS: "password" # 管理画面のユーザーパスワード
      ECCUBE_ADMIN_ROUTE: "admin"
      # TRUSTED_HOSTS: '^127.0.0.1$$,^localhost$$'
      # ECCUBE_LOCALE: "ja"
      # ECCUBE_USER_DATA_ROUTE: "user_data"
      # ECCUBE_ADMIN_ALLOW_HOSTS: []
      # ECCUBE_FORCE_SSL: false
      # ECCUBE_PHPINFO_ENABLED=false
      # ECCUBE_TEMPLATE_CODE: "default"
      # ECCUBE_COOKIE_NAME: "eccube"
      # ECCUBE_COOKIE_PATH: "/"
      # ECCUBE_COOKIE_LIFETIME: 0
      # ECCUBE_GC_MAXLIFETIME: 1440
    networks:
      - backend

  ### Mailcatcher ##################################
  mailcatcher:
    image: schickling/mailcatcher
    ports:
      - "1080:1080"
      - "1025:1025"
    networks:
      - backend

EC-CUBE公式のdocker-compose.ymlの設定では、ローカルでテストする前提なのか

environment:
  APP_ENV: "dev"
  APP_DEBUG: 1

として、開発モード1&デバッグモード2で立ち上げるようになっています。

ここは公開サーバーで使うなら、

environment:
  APP_ENV: "prod"
  APP_DEBUG: 0

とすれば良いでしょう。

docker-composeコマンドでサーバーを起動

ここまで設定が書けたら、docker-composeでコンテナを立ち上げるだけです。

docker-compose up -d

docker-compose.ymlで設定を変えた時は、

docker-compose stop
docker-compose up -d

で再起動をすれば設定がリロードされます。

起動ができたら「サーバーIPアドレス」でアクセスすればEC-CUBEのフロントページが表示されるはずです。

独自ドメインをアタッチする場合は、VPSサーバーによって方法が違うので、VPSサーバーのマニュアルを確認してみてください。

Dockerで完結させるなら、Nginxプロキシコンテナを噛ませると良いかと思います。

Footnotes

  1. 環境設定 | EC-CUBE 4 開発者向けドキュメントサイト
  2. デバッグモード | EC-CUBE 4 開発者向けドキュメントサイト

価格は記載がある場合を除き、すべて税込みです。

関連キーワード

VPSの新着記事

VPSの新着ガイド

もっと見る