はじめに
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.yml
、db-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
以上何かあればコメントください