- 2013-12-09 (月) 16:42
- Advent Calendar 2013 | Docker | Vagrant
Shin x blog Advent Calendar 2013 の 9 日目です。
Docker で PHP アプリケーションを動かしてみようということで、WordPress でやってみます。
WordPress 用 Docker コンテナを作る
Docker は現状 Linux 上でしか動かないので、OSX 上では直接動きません。Vagrant で Linux(CentOS)の仮想マシンを作り、その上で Docker を動かします。
さっそく Linux 環境から WordPress が動く Docker コンテナまで、一気に構築できる Vagrantfile を作りました。これを使うだけで環境構築は終わりです。
まず、GitHub から git clone します。
$ git clone https://github.com/shin1x1/vagrant-docker-wpdev $ cd vagrant-docker-wpdev $ ls wordpress/ Vagrantfile
vagrant up で、仮想マシンを起動します。自動で、Docker のインストール、Docker イメージを生成、コンテナの起動と一連の流れが実行されます。
$ vagrant up (snip) Step 29 : ENTRYPOINT ["/usr/bin/supervisord"] ---> Running in 43bd85e2cde6 ---> f846d6a8f9fb Successfully built f846d6a8f9fb 751f8c8e48519ca624a9167b46b3cbd406b7aeb4ded70b0356992ff3dadc50f0 $
vagrant up コマンドが完了したら、OSX のブラウザから http://192.168.33.11/ にアクセスしましょう。
WordPress の初期画面が表示されれば ok です。
ではウィザードを進んで設定を行いましょう。データベースの設定には、データベース名=「test」、データベースユーザ名=「root」、データベースパスワード=「docker」に設定して下さい。
これで Docker で動く WordPress ができました。やったね!
WordPress の編集
WordPress のソースコードは、OSX の wordpress/ ディレクトリにあります。
このディレクトリは Docker コンテナから参照しているので、OSX 上で編集、ブラウザで確認という流れで作業を進めることができます。
docker-wpdev
この Vagrantfile では、WordPress の Docker コンテナとして、docker-wpdev を利用しています。
WordPress の Docker コンテナはいくつか公開されているのですが、docker-wpdev はソースコードのディレクトリをホスト側からマウントする機構になっており、開発環境などでソースコードを頻繁に書き換える用途に向いていますね。
さいごに
Docker は面白い OSS なのですが、Linux 上でしか動かないため、OSX では Vagrant などで Linux 環境を用意する必要があります。
ここでは CentOS を Linux 環境として使いましたが、Docker を動かすだけなら、より軽量な CoreOS や boot2docker を使う方が良いかもしれません。(ダウンロードも速いですし)
Docker が OSX 上で動くようになるといいなあ。