概要
WordPress、便利ですよね。このブログも WordPress で作成していますし、様々な企業サイトやブログが WordPress で作成されています。様々なテーマが公開されていて、導入も簡単。おそらく今ブログやサイト運営を始めてみようと思う方は、ほとんどが WordPress で運営されるのではないかと思います。
しかし、そんな WordPress 便利なだけあってテーマやプラグインなどが無料有料問わず数多あまります。お試しでインストールするにしても、なんだかワンセットでインストールしなきゃいけなかったり、設定を変えないといけなかったり、なかなかお手軽に試すことができない。
そんなときに、ローカルPC上にお試し環境=開発環境がつくれたら便利じゃないですか? さらに、その環境が欲しい分だけ作成できたら良くないですか? という記事です。
Docker?
Docker を知らない人向けに軽く説明すると、Docker とは OS 上で動作する仮想環境プラットフォームです。HyperV を始めとした仮想 VM なんていう手段もありますが、Docker は「コンテナ」という単位で環境が作成されるためより軽量&構築が簡単です。
Docker によるコンテナの構築・起動は設定ファイルに基づいて行われ、どのような OS やアプリを導入するのかなども設定ファイルで事前に指定することができます。同じような環境をいくつか用意して、それぞれ動かして試したい…みたいなときに便利です。
また、Docker Compose という機能を使うと、複数起動したコンテナ同士の連携についても設定ファイル上で指定してコンテナを起動させることができます。DBサーバー、アプリケーションサーバー、バッチサーバーなど、サーバーが分かれるような場合には Docker Compose を利用するのがよいでしょう。
やり方
https://docs.docker.jp/compose/wordpress.html
Docker 公式ドキュメントで方法が公開されています。この方法に則って実施するのが一番楽です。いかに docker-compose.yml の内容を載せておきます。
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
特に他に設定なども必要なく、http://localhost:8000 にアクセスすると通常通り WordPress が起動できました。テーマやプラグインも問題なくインストールできたので、お試し環境としては申し分ないと思います。
サイトアドレスが Docker ホストから見た時とコンテナ内から見た時で異なるため、Loopback Request が上手くいかない問題があったりします。docker-compose.yml 内で extra_hosts を指定してやると解決できるようなのですが、そこまでは検証していないのでまた今度。