WordPress
Mac
docker

Mac+DockerでWordPressのテーマ開発環境を構築

概要

Dockerを使うとWordPress環境を簡単に構築できますが、Docker上でテーマの開発などをしようとすると結構面倒です。
WordPressコンテナ内でエディタなどの環境を整えるか、Mac上で開発したものをUPLOADするか、しないといけないはずです。

そこで、この手順では、開発自体はMac上でして、WordPressコンテナ内にその内容を自動で反映するように設定する方法をまとめました。

MacにDockerをインストール

DockerにWordPressを構築

Terminalで実行します。

1. コンテナ名を変数にセットする

MySQLのコンテナとWordPressのコンテナを作るので、その2つのコンテナ名をセットしておきます。

$ MYSQL_CONTAINER='test-mysql'
$ WORDPRESS_CONTAINER='test-wordpress'

2. マウントするディレクトリパスを変数にセット

  • Mac側のテーマディレクトリの親ディレクトリのパスを変数にセット
    • 例えばテーマディレクトリが/tmp/wp-themes/my-themeにあるとすると、以下のとおり
$ PATH_OF_LOCALHOST="/tmp/wp-themes"

3. MySQL環境作成

$ docker run --name ${MYSQL_CONTAINER} \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_USER=wordpress \
-e MYSQL_PASSWORD=password \
-e MYSQL_DATABASE=wordpressdb \
-d mysql

4. WordPress環境作成

$ docker run --name ${WORDPRESS_CONTAINER} \
--link ${MYSQL_CONTAINER}:mysql \
-v ${PATH_OF_LOCALHOST}:/tmp/wp-themes \
-p 8080:80 -d wordpress

5. 確認

$ docker ps
(mysqlとwordpressができていればOK)

6. ブラウザから初期セットアップをする

http://localhost:8080/wp-admin/install.php

WordPressコンテナ内で設定

起動したWordPressコンテナにシェルで入る

$ docker exec -i -t ${WORDPRESS_CONTAINER} /bin/bash

マウントしたディレクトリをテーマディレクトリにシンボリックリンク

##(WordPressコンテナ内)##
# ln -s /tmp/wp-themes/* /var/www/html/wp-content/themes/

WordPressコンテナから出る

# exit

完成

これでMac(ホスト側)で開発したテーマが、WordPressコンテナに反映されるようになりました!