BBH
-Biz Branding Hub-
投稿日 : 
2021/06/27
更新日 : 
2021/06/27

WindowsでWordPressをDockerコンテナで動かす方法

Windows DockerでWordpress環境を構築する手順を紹介します。
テーマ開発やちょっとしたスタイルの変更を気軽にできるようになり非常に便利です。

Docker Desktopのインストール

以下の記事を参考にDocker Desktopの設定を行います。
かつてはWindows Pro以上でないと使用できませんでしたが、2021/06現在ではWindows Homeでも使用することができます。

基本的には記事の通りに設定を進めていけば大丈夫ですが、念のため手順を記載しておきます。
こちらからDocker Desktopをインストール

インストール完了し、起動するとWSL2がインストールされていない旨の警告が表示されるので、こちらからインストールする。

コマンドプロンプトからDokcerが使用できるかを確認。

コマンドプロンプトからDockerのバージョンを確認

C:\>docker -v
Docker version 20.10.7, build f0df350

DockerでWordpressを動かす

Dockerの設定が完了したら、Docker上でWordpressを動かす設定をしていきます。

docker-composeファイルの作成

まずは以下のdocker-composeファイルを作成していきます。
これは、Wordpressを動かすために必要なコンテナ(WordPress、MySQL)をひとまとめに管理するためのファイルです。
これを作っておくと、コンテナの管理が楽になります。

ファイル名はdocker-compose.ymlとしてください。

Wordpress用Docker-Composeファイル

version: '3.8'

services:

  wordpress:
    image: wordpress:latest
    container_name: wp-container
    depends_on:
      - wordpress-db
    ports:
      - 8090:80
    restart: unless-stopped
    volumes:
      - wordpress:/var/www/html
    environment:
      WORDPRESS_DB_HOST: wordpress-db:3306
      WORDPRESS_DB_USER: admin
      WORDPRESS_DB_PASSWORD: admin
      WORDPRESS_DB_NAME: wordpress

  wordpress-db:
    image: mysql:5.7
    container_name: wpdb-container
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: admin
      MYSQL_PASSWORD: admin
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

これを任意のフォルダに配置してください。
また、こちらはあくまでサンプルなので詳しい設定は以下のWordpressイメージの公式ドキュメントをご参照ください。

補足:イメージファイルのバージョン

上記のファイルではWordpressのイメージは最新を

image: wordpress:latest

MySQLは5.7をしています。

image: mysql:5.7

これらのイメージは任意のバージョンを指定可能です。
例えば、以下のようにすればWordpressのバージョンを指定できます。

image: wordpress:5.2.4

指定できるバージョンは、以下のようなURLで確認ができます。

https://registry.hub.docker.com/v1/repositories/[コンテナイメージ名]/tags

・Wordpress
https://registry.hub.docker.com/v1/repositories/wordpress/tags

・MySql
https://registry.hub.docker.com/v1/repositories/mysql/tags

Dockerコンテナを起動

作成したdocker-compose.ymlがあるフォルダに移動し、docker-compose up -dとコマンドを打つと、Dockerコンテナが起動します。

Dockerコンテナの起動

D:\wordpress>dir /b
docker-compose.yml

D:\wordpress>docker-compose up -d
Creating network "wordpress_dev_default" with the default driver
Creating wpdb-container ... done
Creating wp-container   ... done

D:\wordpress>

Dockerコンテナの起動が確認出来たらhttp://localhost:8090/wp-admin/にアクセスしてみましょう。(※portはdocker-composeで指定したものに読み替えて下さい。)
Worpressの管理画面にアクセスできれば成功です。

gitとの連携

Docker上でWordpressの起動を確認出来たら、次はgitと連携してテーマの開発を行ってみましょう。
すでにテーマはgit管理されている前提で話を進めます。

まずは、gitリポジトリをローカルの任意のフォルダにcloneします。
次に、Wordpressのテーマフォルダに上記のフォルダをマウントする設定をdodker-composeに記載します。

例えば、/d/git/your_theme_dir配下にリポジトリをcloneした場合は以下のように記載します。

dodker-compose.yml

volumes:
  - wordpress:/var/www/html
  - /d/git/your_theme_dir:/var/www/html/wp-content/themes/your_theme_name


/var/www/html/wp-content/themesはWordpressのテーマが保存されているディレクトリです。
また、Wordpressコンテナの初回起動時はyour_theme_nameディレクトリが存在しないので、マウント前にあらかじめ作成しておかないとエラーになります。

WordPressコンテナの起動、ディレクトリのマウントが成功したら、Wordpress管理画面からテーマを確認してみます。
マウントしたディレクトリがテーマとして認識されていれば成功です。
あとは、cloneしたフォルダのソースを編集して開発を進めることが可能です。

その他

開発環境用の設定

広告やアナリティクスなど本番でしか機能させたくないものは、環境変数で分岐を入れるとよいです。
以下のようにすれば、Docker-Composeで環境変数を設定することができます。

dodker-compose.yml

environment:
  APP_MODE: dev

Worpress(php)の分岐は以下のように設定できます。

Wordpress側のコード

<?php if(getenv('APP_MODE') =='dev') : ?>
    <p>開発環境です</p>
<?php else : ?>
    <p>本番環境です</p>
<?php endif; ?>

Visual Codeの便利機能

Visual CodeからDockerコンテナを立ち上げたり、attachしてコマンドを実行したりもできるようです。
現状で特に問題ないので設定はしていませんが、いろいろ設定してみてもよいでしょう。

Profile

管理人プロフィール

都内でITエンジニアをやってます。
変遷:中規模SES→独立系SIer→Webサービス内製開発
使用技術はその時々でバラバラですが、C#、AWSが長いです。
どちらかと言うとバックエンドより開発が多かったです。
顧客との折衝や要件定義、マネジメント(10名弱程度)の経験あり。
最近はJava+SpringBootがメイン。

Recommend