Dockerでwordpressの開発環境をつくる

2018年09月24日 00時09分

前回の座談会で Docker を使用して、開発をされてらっしゃる方がいたので私も感化されて、開発環境を Vagrant から Docker に移動しようと目論んでいる。

(こういうデザインできるとめっちゃいいですよね。)

どちらも仮想環境を構築するプログラムではあるがロッカーの場合はコンテナを使用することで複数のレイヤーからなるイメージをセットアップすることができる。

つまりということかと言う Vagrant よりアプリケーションの追加がしやすいというのがさっと学んだ印象。

もちろん、Vagrant も任意の box を用意すれば、自動で任意の環境を構築できる。

そういう意味ではどちらも近いような気がする。

仕組みとしては、Linux 上で動く Docker エンジン(クジラの部分)上で動くコンテナ(OS だったり、ミドルウェア、アプリだったり)を積み上げていって放り込んで動かしていく感じです。

まぁそれはさておき Docker を導入していくあたり、windows10 では、HyperV もしくは、VirtualBox を使用するやり方がある。

今回はバーチャルボックスを利用していく。

本体ダウンロード

まずDocker Tool Box、及びVirtualBoxをダウンロード&インストール。

そうするとデスクトップに3つアイコンが追加されているはず。

・VirtualBox

・Docker Quickstart Terminal

・Kitematic(Alpha)

Docker エンジン起動

Docker Quickstart Terminalを起動するとバーチャルマシンの設定と起動が行われる。

コンテナ準備

今回はワードプレスの開発環境用意したいのでワードプレスのイメージと MySQL のイメージをプルする。

その後 docker run をすることで、ワードプレスの画面が表示されるのだが、DB と連携が取れていない。

コンテナのイメージの指定、マウントファイルの設定、その他の環境変数の設定はドキュメントルート内にある docker-compose.yml 内に記述すると一括で処理してくれる。

docker-compose は、DockerToolBox に入っているオーケストレーションツールの 1 種で、複数のコンテナを同時に扱ったり、ネットワークの設定までできる、便利なやつ。

今回は、環境変数は.env ファイルに記述した。

#docker-compose.yml

version: "2"

services:

# wordpress settings
wordpress:
image: wordpress:latest
container_name: "wordpress"
ports:
- 80:80
environment:
WORDPRESS_DB_HOST: db:3306
env_file: .env
restart: always
volumes:
- ./sitedata:/var/www/html/
depends_on:
- db

# mysql settings
db:
image: mysql:latest
container_name: "wp-mysql-db"
env_file: .env
restart: always
volumes:
- db-data:/var/lib/mysql/

volumes:
db-data:
driver: local

起動

Docker Quickstart Terminal 内でドキュメントルートまで移動し、

docker-compose up -d

でバックグラウンドで起動が行われる。

最初はコンテナのダウンロードに時間がかかるが、しばらく待つと localhost にアクセスすることで、wordpress の初期設定が行える画面が表示されるはず。

感想

・コンテナを指定するだけで、すぐ環境が用意できるし、規格化がされているから、便利。

・導入が手軽なのはいい。

・docker はもちろん、オーケストレーションツールを使いこなすのがミソな気がする。

・あと、思ったよりコンテナが軽い?