Edited at

docker-composeで作るWordpress環境

More than 1 year has passed since last update.


はじめに


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

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