WordPress開発環境をDockerで構築する方法をまとめました

この記事では、ローカル環境にWordPressをインストールし、開発環境を整える方法を紹介します。

Contents

DockerでWordPressを構築する手順

DockerでWord Press環境を構築するステップは、次の3つです。

  1. docker-compose.ymlを作成
  2. Dockerコンテナを起動
  3. Dockerコンテナを停止

1. docker-compose.ymlを作成

まずはWordPressを構築したいディレクトリにdocker-compose.ymlを作成します。

ディレクトリへ移動、docker-compose.ymlを作成

$ cd dev/wp/
$ vim docker-compose.yml

docker-compose.ymlに以下を記述

version: '3.1'

services:
   db:
     image: mysql:5.7
     volumes:
       - ./my-wp/mysql/:/var/lib/mysql # コンテナ内のデータベースをローカル環境に紐付ける
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
     volumes:
       - ./my-wp/themes:/var/www/html/wp-content/themes
       - ./my-wp/plugins:/var/www/html/wp-cotent/plugins
       - ./my-wp/uploads:/var/www/html/wp-content/uploads

この例では./my-wpでコンテナとの紐付けを行なっています。
テーマやプラグイン、アップロード用のディレクトリをローカルでも作業できるようにしました。

2. Dockerコンテナを起動

docker-compose.ymlができたら、以下のコマンドを実行してください。

$ docker-compose up -d

コンテナが起動したらlocalhost:8000にアクセスしてみてください。
※8000はdocker-compose.ymlのportsで指定した値です。

すぐにアクセスするとエラーになるので、少し時間が経ってからの方が良いです。

こんな感じでWordPressの初期設定画面が表示されたらOKです!

また、ローカルにmy-wpディレクトリができて、配下にthemeやpluginなどのフォルダが作られます。
カスタマイズする際などはこちらで作業してください。

3. Dockerコンテナを停止

コンテナを停止するには以下コマンドを実行します。データは削除されません。

$ docker-compose down

コンテナ停止と合わせてデータも削除したい場合は、オプションで--volumesをつけます。

$ docker-compose down --volumes

DockerでWordPress環境を構築するメリット・デメリット

WordPressをローカルで構築しようとする場合、MAMPやLocalなどを使うことが多いと思います。

それらと比較した時のDockerのメリットは、実際に作業するファイルのみローカルに置けるという点だと思います。

MAMPだとWeb制作であまりいじることのないディレクトリも含め全てがインストールされるのですが、Dockerだと必要な部分のみローカルに置くことができます。

一方、そもそもDockerを学習するコストがかかったり、VSCodeで補完やデバッグをする時の設定が少し大変そうだったり、といった懸念もあります。
(ちなみに私は実行パスはローカルPCにインストールしたPHPを通してます)

あとDocker起動中は結構なメモリを消費します…

大体のことはMAMPやLocalで事足りるので、もし興味があればDockerでも試してみてください。

Share
  • URLをコピーしました!
Contents