WordPressのブログをAWS S3で公開するの続き。

前回はS3でブログを公開するところまでやったので、次はさくらインターネットのWordPressを止める必要がある。その前に自分のPCでWordPress環境を構築する。今回はDockerの勉強もかねて、Dockerを使って構築する。

Dockerとは

Dockerは軽量の仮想化環境である。VirtualBoxなどの仮想化はハードウェアからのエミュレーションであるが、DockerはホストOSの上のレイヤーでの仮想環境である。下のリンクが分かりやすい。

WikiPedia Docker

超入門Docker:第1回 Dockerとは

ミドルウェア(ApacheやMySQLなど)を入れたイメージを作り、そのイメージをベースとしたコンテナを動かしていく。もし、ミドルウェアのバージョンアップがあった時は、コンテナを作り直して、コンテナを差し替える形で起動すれば良い。負荷分散などで複数サーバを立ち上げたい時は、同じように設定されたコンテナを複数起動させることができる。要は、アプリケーション環境を一つの箱に入れ込んで管理できるというもの。

今回はホストOS(Mac)の環境を汚すことなく、WordPress環境を作れるところもメリットだと思った。

Docker for Macのインストール

Get started with Docker for Mac

上記リンクから、Dockerをインストール。Dockerアプリを起動させると、Macの上のバーにクジラが出てくる。

Docker ComposeでWordPress環境を構築

DockerでWordPress環境を構築するためには、MySQLとWordPressのイメージを利用する。このイメージはDockerHubで公開されている。オフィシャルと書いてあるので、信用できるものである。

MySQLとWordPressの2つのコンテナを使うので、Docker Composeを使う事にした。Docker Composeは以下のサイトの解説がわかりやすい。

docker-composeを使うと複数コンテナの管理が便利に

Dockerの公式サイトにWordPress環境構築のドキュメントがあるので、その通りに実行する。

Quickstart: Compose and WordPress

何も詰まることなく、あっけなくWordPress環境が立ち上がった。

localhost:8000 で繋いで見ると、初期画面が表示された。簡単すぎる!!

気になるところ

初期起動までは簡単だったけど、色々と気になるところが出てきた。

1つ目は、Data Volumeについて。Data Volumeは、コンテナの永続データを保存する仕組みのこと。永続データはData Volumeに入れるのが良いらしい。公式サイトのdocker-compose.ymlでは、WordPressの本体が入っている/var/www/htmlはData Volumeになっていない。画像のアップロード先でもあるので、Data Volumeにしておきたい。

2つ目は、MySQLのデータを編集するために、phpMyAdminを使えるようにしておきたい。

3つ目は、「WP Static HTML Output」を使おうとすると、”You are missing the zip extension”とメッセージが出て利用できない。以下のリンクに解決方法が出ているので、これを取り込むようにする。

PHP Zip Archive Enabled Fail #52

オレオレ版に改造

修正したDockerfileとdocker-composeは、GitHubにて公開している。

https://github.com/eiKatou/Sample/tree/master/Docker/WordPress

まず、3つ目に対応するため、zip extensionをインストール済みのDockerイメージを作成する。WordPressの公式イメージを元に、zip

extensionをインストールしたものである。この対応のために、Dockerfileを作成する。Dockerfileはイメージを作るためのソースコードのようなものだ。Dockerfileの記述に沿って、イメージが構築される。

次はdocker-compose.ymlを修正する。修正点は以下のとおり。

・Dockerfileで作ったイメージを利用する

・phpMyAdminのコンテナを起動

・WordPressのデータ保存先をData Volumeにする

・WordPressは80番ポートで動かすようにする(元は8000番ポート)

Dockerfileとdocker-composeの準備

~/wordpress/配下に、以下の2ファイルを配置。

・Dockerfile

・docker-compose.yml

イメージの作成

cd ~/wordpress
docker build -t wordpress:20170419 ~/wordpress
docker images

最後のコマンドで、wordpress:20170419のイメージができていることが確認できる。

WordPress起動

cd ~/wordpress/
docker-compose up -d

WordPressへのアクセス

WordPressへは以下のURLでアクセスする。

http://127.0.0.1/

127.0.0.1でなく、localhostで繋いでも良い。

phpMyAdminへのアクセスは以下のURL。

wordpress/wordpressでログインできる。

http://127.0.0.1:8080/

WordPress停止

cd ~/wordpress/
docker-compose down

Dockerを使ってみて

Dockerで簡単にWordPress環境を作ることができた。また、自分のPCに直接ミドルウェアを入れる必要がないので、自分のPC環境を汚さずに、色々な環境をお試しで作ることができる。勉強するところは多いが、非常に便利なソフトウェアだと思った。Dockerは開発が続いているので、今後はもっと便利になっていくと思う。

Docker上のWordPressデータのバックアップ&リストアに続く・・