DockerでWordPressの開発環境を構築する方法
WordPressでブログを構築する際の課題のひとつがテスト環境の準備です。
WordPressの本番環境を完全に再現できるテスト環境を用意したいものの、そのために費用がかさむのは避けたいと、悩んでいる人もいるのではないでしょうか。
その悩みを解決するのが、ローカルで簡単にテスト環境を構築できるDockerです。
今回はDockerを使ってWordPressの環境を構築する方法について詳しく解説します。
Dockerとは何か?
DockerによるWordPressの構築方法を解説する前に、まずはDockerについて解説しましょう。
Dockerは近年注目されるシステム環境構築技術のひとつで、多くの現場で活躍している「コンテナ技術」のひとつです。
コンテナ技術とは、既存OS上に「コンテナ」と呼ばれる領域を作成し、ソフトウェアなどをインストールする手法です。
Windows、Mac、Linux、AWSといったプラットフォーム上で複数のOSやアプリケーションを動作させることが可能で、ローコストで環境の準備が可能となります。
Dockerは世界的に高いシェアを占めるコンテナ技術であり、多くのシーンで利用されています。
例えば、WordPressのDockerでの構築は、一次的なテスト環境を用意する際などに多く用いられています。
テスト環境毎に物理マシンやクラウド環境を準備していると、その都度コストが必要になりますが、Dockerを使えば、ひとつのマシン内に複数のテスト環境を準備できるため、環境構築のためのコストを大幅に削減できます。
また昨今ではDockerは、古いシステムをモダナイズ(刷新)する際にも利用されていますが、旧システムを延命するにあたって、大きな課題の1つが、適合するハードウェアの枯渇です。
古いシステムはリリースから数十年もの時間が経過していることも珍しくなく、すでに適合するハードウェアが存在しないケースもあります。
そんな場合でも、コンテナ技術はハードウェアに依存しないことから、旧システムの延命に有効な手段のひとつとなっているのです。
WordPressでDockerを利用するメリット・デメリット
WordPressの環境構築でDockerを利用するメリット・デメリットは、どのようなものなのでしょうか。
Dockerを利用するメリット
まずはDockerを利用するメリットについてです。
冒頭で説明した通りDockerを利用することで、低コストで環境を構築することが可能となりますが、それ以外にも多くのメリットがあります。
ここでは代表的な4つのメリットについて解説します。
同じ環境を簡単に構築可能
Dockerのメリットの1つ目は、どこでも全く同じ環境構築が可能な点です。
Dockerはプラットフォーム上にコンテナと呼ばれる仮想空間を作り、その中に稼働環境を構築する技術で、プラットフォームの仕様や制約に依存しません。
よってコンテナ内に構築するWordPress環境は、どのプラットフォームであっても全くの同一環境となり、誰がどこで構築しても同じ環境を構築、利用できるわけです。
例えばチーム内で別々の場所でテストをする場合であっても、共通のハードウェア環境を準備する必要がないことから、開発やテストをスムーズに実施できるメリットがあります。
簡単にテスト環境が構築できる
Dockerのメリットの2つ目は、テスト環境を簡単に構築できる点で、Dockerでは新たなハードウェアもクラウド環境も用意する必要がありません。
その気になれば手持ちのパソコンを利用しても手軽に構築可能ですし、さらにDocker自体は無料で入手可能なので契約や購入といった手間もかかりません。
Dockerは今すぐその場で構築できるという点で大きなメリットがあるといえるでしょう。
ハードウェア依存がない
Dockerのメリットの3つ目は、ハードウェアへの依存性がない点です。
1つ目のメリットにも通じるところがありますが、DockerはOSやハードウェアに依存せず動作します。
つまりハードウェア上の競合や他ソフトの影響を考慮する必要がないのです。
ソフトウェアインストールにおいて稼働環境の相性とその対策は、構築時における課題のひとつですが、これを回避できるのは大きなメリットといえるでしょう。
テスト環境→本番環境へシームレスに移行可能
Dockerのメリットの4つ目は、環境のシームレスな移行が可能な点です。
繰り返しになりますが、Dockerはハードウェア環境などに依存せず、Dockerと呼ばれるコンテナの中で動作環境を構築できます。
また構築した環境はDockerをインストールした環境であればどこにでも移設できます。
例えば、テスト環境として構築し、テストが完了した最小構成のマシンを、そのまま本番として動作させる環境へ移行させることも容易なのです。
テスト環境を本番環境に移行しやすい点もDockerを利用するメリットといえるでしょう。
Dockerを利用するデメリット
多くのメリットを享受できるDockerですが、逆にDockerを利用するデメリットはあるのでしょうか?
技術習得に時間がかかる
Dockerを利用するには、それなりに勉強しなくてはなりません。新しい技術であるため、概念や使い方をしっかり理解しておく必要があります。
また、実際の設定や利用にあたっては、多くのコマンドを覚える必要があるため、習得にはそれなりの時間が必要となります。
しかしながら、一度覚えてしまえば以降は環境構築の度にそのノウハウを活用できるため、その勉強時間は決して無駄にはなりません。
この機会にDockerについて、腰を据えて勉強してみてもよいのではないでしょうか。
Docker上にWordPress開発環境を構築する方法
ここまでDockerについて説明してきましたが、ここからは本題であるDocker上でWordPressを構築する方法について解説します。
Docker上にWordPressを構築する手順は、環境の準備なども含めて4つのステップで行いますが、今回は環境の準備と構築から、作った環境を削除するまでの手順を解説します。
Dockerを稼働させるためのマシンの準備
まずは、Dockerで環境を構築するマシンを準備します。
DockerはWindows、Mac、Linux、さらにはAWSなど多くのプラットフォーム上で動作しますが、身近で手軽に準備するのであれば、家庭用や業務用のWindowsやMacなどでも十分です。
ただし、Docker上でWordPressを動作させる場合は、最低でも8GB程度のメモリを搭載したマシンを用意するようにしましょう。
Dockerのインストール・設定
次にDockerのインストールを行います。
まずはDocker Desktopのインストーラーを公式サイトからダウンロードします。
「Docker Desktop for Mac」を利用する場合は、対応するCPUに合わせたインストーラーを入手しましょう。
ダウンロードしたらDocker for desktopをインストール、インストールはガイドに従って進行すれば完了します。
設定が完了したらDocker Desktopを起動してください。
環境によっては初期設定のままではDockerが正しく起動しないケースがあります。
多くの場合、割り当てられているメモリのスワップサイズが不足しているのが原因なので、動作しない場合はDocker Desktopの設定画面の「Resource」タブを開いて「Memory」と「Swap」を適宜増やすようにしてください。
WordPress、MySQLのインストール
Dockerインストールが完了したら、次はWordPress、およびMySQLのインストールを実行します。
Dockerにファイルを展開する場合、通常のインストーラーは利用できないので、ターミナル上でDockerコマンドを利用してインストールすることになります。
Linuxなどでソフトウェアをインストールした経験がある人は、コマンド入力でダウンロード、およびインストールを行ったと思いますが、それと同じようなイメージで考えてください。
Dockerの場合、あらかじめコマンドファイルを準備し、これを実行することでインストールします。
Docker用フォルダの準備
インストールする前に、WordPressファイルを配置するフォルダを準備します。
例えば、MacOSの「書類」フォルダの中に「WordPress」というフォルダを作成した場合、パスは「/Users/<ユーザー名>/Documents/WordPress」なので、MacOSのターミナルを起動してcdコマンドを入力し、作成した「WordPress」フォルダに移動しましょう。
- cd /Users/<ユーザー名>/Documents/WordPress
Docker Composeファイルの準備
「WordPress」フォルダに移動したら、インストールを実行するコマンドファイルを準備します。
このコマンドファイルのことをDocker Composeファイルと言い、下記コマンドで「docker-compose.yml」ファイルを作成し、vimエディターで開きます。
- vim docker-compose.yml
次に「docker-compose.yml」の中に下記の通り、データベース、WordPress、phpMyAdminの設定を入力し、ファイルを保存します。
version: "3.7"
services:
db:
image: mysql:5.7
container_name: wp_mysql
#restart: always
environment:
MYSQL_ROOT_PASSWORD: root # rootユーザのパスワード(任意に指定可)
MYSQL_DATABASE: wp_db # WordPress用データベース名(任意に指定可)
MYSQL_USER: wp_user # WordPress用データベース接続ユーザ名(任意に指定可)
MYSQL_PASSWORD: root # WordPress用データベース接続パスワード(任意に指定可)
WordPress:
image: WordPress:latest
container_name: wp
#restart: always
depends_on:
- db
ports:
- "10090:80"
environment:
WORDPRESS_DB_HOST: db:3306 # データベースサーバ名:ポート番号
WORDPRESS_DB_USER: wp_user # WordPress用データベース接続ユーザ名(dbの内容に合わせる)
WORDPRESS_DB_PASSWORD: root # WordPress用データベース接続パスワード(dbの内容に合わせる)
WORDPRESS_DB_NAME: wp_db # WordPress用データベース名(dbの内容に合わせる)
WORDPRESS_DEBUG : 1 #デバッグモードON
volumes:
- ./html:/var/www/html
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: phpmyadmin_ingrid
#restart: always
depends_on:
- db
ports:
- 10099:80
Docker Composeファイル実行
次に作成したDocker Composeファイルを実行し、コンテナを起動、下記コマンドを利用してWordPressとMySQLをインストールして起動しましょう。
- docker-compose up -d
動作確認
構築が完了したら、最後は動作確認です。
ウェブブラウザを起動し、下記URLからDocker内のWordPressとphpMyAdmin(MySQL)にアクセスしてみましょう。
それぞれの画面が表示されれば無事完了となります。
- WordPress: http://localhost:10090
- phpMyAdmin: http://localhost:10099
環境削除方法
最後に、構築したWordPress環境を削除する方法について解説します。下記コマンドを使うことで、ここまで作成したすべてのボリュームを削除できます。
- docker-compose down --volumes
なお、「WordPress」フォルダ内の「docker-compose.yml」ファイルはそのまま残っているので、ターミナルで「docker-compose up -d 」を実行すれば、まったく同じWordPressの環境を再度構築できます。
まとめ
今回は、Dockerを使ってWordPressの開発環境を構築する方法を解説しました。
Dockerはコンテナ技術のひとつであり、仮想的なテスト環境などを簡単に構築できる新しい技術です。
WordPressをローカルで開発したり動作検証のためのテスト環境を構築したりするケースなどで、安価かつ簡単にその環境を構築できる優れた方法といえます。
これを機に、Dockerを使ったWordPress環境の構築に挑戦してみましょう。
誰でも10分!WordPressブログの始め方
ブログを始めるには、ライブドアブログやはてなブログといった無料ブログを使う方法、あるいはWordPressなどを使用する方法があります。
まだWordPressを持っていない人でも、簡単に準備できる方法を以下の記事で解説してます。
初心者でもわずか10分で始められるので、参考にしてみてください。
合わせて読みたい
【完全ガイド】誰でも10分!WordPressブログの始め方
独自ドメインを取得するなら「お名前.com」
「お名前.com」は、国内No.1のドメイン登録サービス。独自ドメインと合わせて、WordPressの自動インストールに対応したレンタルサーバーも利用できます。
WordPressや独自ドメインを一度も使ったことのない人でも、スムーズに始められるはず。
独自ドメインを取得しようと考えている方は、以下のリンクから、ぜひご利用ください。