Posted at

docker-composeでWordPress開発環境を疾風のように用意する

More than 1 year has passed since last update.

ディップ Advent Calendar 2016 - Qiitaに書くぞ、ということで、最近のネタを。

MacBook Pro Touch Bar 15インチモデル(late 2016)を買いました。

11月27日に受け取ったばかりですが、思っていたよりも、よいかも…ʕ•ᴥ•ʔ

さてわたしは、新しいPCのセットアップが大好きです。

TimeMachineでイッパツ、とかはやらずに、開発環境を見直しつつコツコツとやっていきたい!

今回、とある事情があってWordPress環境を作ってゴリゴリやる必要が出てきました。

今まではダラダラとVirtualBox + Vagrant、ひどいときはローカルを汚しながらのらりくらりと過ごしてきましたが、そろそろちゃんとしたかったのでDockerで。


Docker for Macをインストールする

Get started with Docker for Mac - Dockerの手順通りにインストールをします。

$ docker --version

Docker version 1.12.3, build 6b644ec
$ docker-compose --version
docker-compose version 1.8.1, build 878cff1
$ docker-machine --version
docker-machine version 0.8.2, build e18a919

バージョンはこんな感じ。


WordPressの環境をつくる

Quickstart: Compose and WordPress - Dockerという便利なチュートリアルがすでにあるのです。

これを元に、少しだけ変更して自分の開発環境を作りました。

ディレクトリをつくって移動する。

作成したディレクトリの中に、docker-compose.ymlを作成する。

$ mkdir ~/wordpress-project

$ cd ~/wordpress-project

中身はこんな感じ。


docker-compose.yml

version: '2'

services:
db:
image: mysql:5.7
volumes:
- "$PWD/.data/db:/var/lib/mysql"
ports:
- "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- "$PWD:/var/www/html"
links:
- db
ports:
- "1010:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress


WordPressとDBを別々のコンテナとして作成しています。

ローカルで開発をしたいので、volumesでローカルとコンテナをマウントします。

{ローカル}:{コンテナ}

そして、ビルドします。

$ docker-compose up -d

確認すると、こんな感じ。

$ docker-compose ps

Name Command State Ports
--------------------------------------------------------------------------------------------
wordpressproject_db_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
wordpressproject_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:1010->80/tcp

http://localhost:1010/にアクセスすると、WordPressのセッティングをはじめることができました。(言語を選んだり管理ユーザを作成したり)

ʕ•ᴥ•ʔ<めでたし!

nodeもgoも今度からはDockerで!


よく使うコマンド

今のところよく使うコマンドたち。

エイリアスを設定すると、ʕ•ᴥ•ʔ<らくちん!

コンテナの作成と開始。ymlファイルを書き換えたときも。

$ docker-compose up -d

コンテナの停止。

$ docker-compose stop

コンテナの開始。

$ docker-compose start

全体で立ち上がっているコンテナを見る。

$ docker ps -a


おまけ

IntelliJでデータベースのコンテナに接続するときの設定。

ʕ•ᴥ•ʔ<気持ちE

intellij-db-setting.png

あ!上記の例だとUserはRootじゃないかも...失礼!ʕ•ᴥ•ʔ<貼り替えない!