前回、前々回とDockerを使ってWordPressの開発環境を構築する方法を紹介しました。

ここまでの2回はDockerでのWordPress環境の構築と最低限のDockerの操作方法の説明になります。今回は、テーマやプラグインをカスタマイズする際に、Dockerを入れているホストPCとDockerコンテナをvolumeを使ってマウントして変更した内容を確認する方法を紹介します。

docker-compose.ymlを編集する

ひとまず、前回までに使っている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.ymlがあるフォルダ構成

これでdocker-composeコマンドやDocker Desktopからwpコンテナを再起動させればvolumeのマウントができて共有されます。

わかりやすくテーマやプラグインの名前をしていますが、変更したいテーマやプラグインのフォルダ名にあわせてvolumesでマウントする「my-theme」「my-plugin」を変更してください。

変更後のdocker-compose.yml

変更後の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を使ったほうが楽に準備できて、データの破棄もやりやすいので複数の環境を準備するときなどおすすめです。