前回、前々回とDockerを使ってWordPressの開発環境を構築する方法を紹介しました。
ここまでの2回はDockerでのWordPress環境の構築と最低限のDockerの操作方法の説明になります。今回は、テーマやプラグインをカスタマイズする際に、Dockerを入れているホストPCとDockerコンテナをvolumeを使ってマウントして変更した内容を確認する方法を紹介します。
docker-compose.ymlを編集する
ひとまず、前回までに使っているdocker-compose.ymlがこちらです。
version: '3.9'
services:
wp:
container_name: wp
image: wordpress:php7.4
restart: always
working_dir: /var/www/html
ports:
- '8080:80'
depends_on:
- db
volumes:
- wpData:/var/www/html
environment:
TZ: 'Asia/Tokyo'
WORDPRESS_DB_HOST: 'db:3306'
WORDPRESS_DB_USER: 'wordpress'
WORDPRESS_DB_PASSWORD: 'wordpress'
WORDPRESS_DB_NAME: 'wordpress_db'
WORDPRESS_DEBUG: 1
db:
container_name: db
image: mysql:8
command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci
volumes:
- dbData:/var/lib/mysql
ports:
- '3306:3306'
environment:
MYSQL_DATABASE: 'wordpress_db'
MYSQL_ROOT_PASSWORD: 'wordpress'
MYSQL_USER: 'wordpress'
MYSQL_PASSWORD: 'wordpress'
volumes:
dbData:
driver: local
wpData:
driver: local
このファイルのwpのvoluesを以下のような形に編集します。
volues:
- wpData:/var/www/html
- ./my-theme:/var/www/html/wp-content/themes/my-theme # 自身のテーマのディレクトリと共有
- ./my-plugin:/var/www/html/wp-content/plugins/my-plugin # 自身のプラグインのディレクトリと共有
これで以下のようなdocker-compose.ymlがあるフォルダ内のファイル構成になっていればOKです。

これでdocker-composeコマンドやDocker Desktopからwpコンテナを再起動させればvolumeのマウントができて共有されます。
わかりやすくテーマやプラグインの名前をしていますが、変更したいテーマやプラグインのフォルダ名にあわせてvolumesでマウントする「my-theme」「my-plugin」を変更してください。
変更後のdocker-compose.yml
変更後のdocker-compose.ymlが以下のような構成になります。
version: '3.9'
services:
wp:
container_name: wp
image: wordpress:php7.4
restart: always
working_dir: /var/www/html
ports:
- '8080:80'
depends_on:
- db
volumes:
- wpData:/var/www/html
- ./my-theme:/var/www/html/wp-content/themes/my-theme # 今回追加分
- ./my-plugin:/var/www/html/wp-content/plugins/my-plugin # 今回追加分
environment:
TZ: 'Asia/Tokyo'
WORDPRESS_DB_HOST: 'db:3306'
WORDPRESS_DB_USER: 'wordpress'
WORDPRESS_DB_PASSWORD: 'wordpress'
WORDPRESS_DB_NAME: 'wordpress_db'
WORDPRESS_DEBUG: 1
db:
container_name: db
image: mysql:8
command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci
volumes:
- dbData:/var/lib/mysql
ports:
- '3306:3306'
environment:
MYSQL_DATABASE: 'wordpress_db'
MYSQL_ROOT_PASSWORD: 'wordpress'
MYSQL_USER: 'wordpress'
MYSQL_PASSWORD: 'wordpress'
volumes:
dbData:
driver: local
wpData:
driver: local
テーマとプラグイン両方のマウントを書いていますが、状況に合わせてテーマだけやプラグインだけ記述しても問題ないです。
まとめ
今回は、volumeを使ってDockerで構築したWordPress環境にテーマやプラグインを共有する方法を紹介しました。前の2回と合わせてこれでテーマやプラグインの直接コードを使ったカスタマイズができるようになります。
個人的にDockerを使ったほうが楽に準備できて、データの破棄もやりやすいので複数の環境を準備するときなどおすすめです。