はじめに


Vagrantが重過ぎるので、dockerに乗り換えがてら、wordpress環境をサクッと作ってみる。

やりたいこととしては、wordpressのtheme編集が出来て、データベースは非エンジニアでも触れるようにしておけば、使い勝手もいいだろうということでphpmyadminも使えるようにしておく。

なおdocker-composeで作るので、共有も簡単に出来ます。

環境は以下

  • Mac OSX 10.12.6
  • docker 17.06.0-ce, build 02c1d87
  • wordpress (公式イメージのlatest)
  • mysql (公式イメージのlatest)
  • phpmyadmin (公式イメージのlatest)

Dockerのインストールに関しては、Docker for Macを入れておけばOK

 

1. ディレクトリ構成


ディレクトリの構成は以下のような構成で作る。
なお今回は作業ディレクトリ名をrootとします。

root/
 ┣ docker-compose.yml
 ┣ db-data/
 ┣ themes/

rootディレクトリ直下にdocker-compose.ymlファイル、db-data/フォルダ、themesフォルダがあります。
それぞれの役割は

// 作成したいコンテナの情報を記述
docker-compose.yml

// docker起動時に最初からデータを入れておきたい場合は、db-dataフォルダ内にsqlファイルを入れておけば勝手にインポートしてくれる
db-data/

// 作成・編集したいテーマフォルダを入れておく。
themes/

 

2. docker-compose.ymlを書く


docker-compose.ymlにdockerイメージの設定なんかを書いていく。
envファイルに環境変数をまとめるやり方の記事が多いが、今回はあくまでもローカルで動かすためなので、envファイルは作らないで書く。

version: "2"
services:
  # mysql settings
  mysql:
    image: mysql:latest
    environment:
      - MYSQL_ROOT_USER=root
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=hoge
      - MYSQL_USER=wp_user
      - MYSQL_PASSWORD=root
    volumes:
      - db-data:/var/lib/mysql
      - ./db-data:/docker-entrypoint-initdb.d
    ports:
      - 3306:80

  # Wordpress settings
  wordpress:
    image: wordpress:latest
    ports:
      - 80:80
    depends_on:
      - mysql
    links:
      - mysql
      - phpmyadmin
    environment:
      - WORDPRESS_DB_HOST=mysql:3306
      - WORDPRESS_DB_NAME=hoge
      - WORDPRESS_DB_USER=wp_user
      - WORDPRESS_DB_PASSWORD=root
    volumes:
      - ./themes:/var/www/html/wp-content/themes
  # phpmyadmin settings
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=mysql
      - PMA_USER=root
      - PMA_PASSWORD=root
    links:
      - mysql
    ports:
      - 8080:80
    volumes:
      - /sessions
volumes:
  db-data:
    driver: local

 

3.開発方法


適当な作業ディレクトリを作成し、上記のdocker-compose.ymldb-data/themes/を配置する。

めんどくさい方はhttps://github.com/ken-sayama/docker-for-wordpress githubにサンプル置いておきます。

そのディレクトリでdocker-compose up -dをおこなえばwordpress環境が立ち上がります。
 

4.アクセス


上記でブラウザで表示確認が可能

5.補足

既存で運営してるサイトのローカル開発環境としたいのであれば、dumpしたsqlファイルをdb-dataフォルダ内に配置して、docker-compose up -d

プラグインの依存関係などもあり、wordpressのプラグインフォルダもホストで管理したい場合は、volumesの設定を以下のように書き換える。

# Wordpress settings
  wordpress:
    image: wordpress:latest
    ports:
      - 80:80
    depends_on:
      - mysql
    links:
      - mysql
      - phpmyadmin
    environment:
      - WORDPRESS_DB_HOST=mysql:3306
      - WORDPRESS_DB_NAME=hoge
      - WORDPRESS_DB_USER=wp_user
      - WORDPRESS_DB_PASSWORD=root
    volumes:
      - ./themes:/var/www/html/wp-content/themes
      # 以下を追加
      - ./plugins:/var/www/html/wp-content/plugins

以上何かあればコメントください

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.