「WordPressの開発環境をローカルに構築するたびに時間がかかる」「チームメンバーと開発環境が一致しなくて困る」といった経験はありませんか? 従来のXAMPPやMAMPといった環境では、バージョン管理の複雑さやOS間の差異に悩まされがちです。しかし、Dockerを使えば、これらの課題を一気に解決し、再現性の高い開発環境を瞬時に手に入れることができます。
この記事では、WordPress開発を劇的に効率化するDockerを活用した環境構築の手順を、フロントエンドエンジニアの視点も交えながら詳しく解説します。初めてDockerに触れる方でも安心してWordPressの開発を始められるように、具体的なコード例を交えながら進めていきましょう。もう開発環境で悩む必要はありません。
なぜ今、WordPress開発にDockerを使うべきなのか?
WordPress開発において、環境構築は最初の大きなハードルとなりがちです。PHPのバージョン、MySQLのバージョン、必要な拡張機能など、プロジェクトごとに異なる要件をローカル環境で管理するのは非常に手間がかかります。また、複数プロジェクトを並行して進める場合、環境の衝突も避けられません。
そこで注目されるのがDockerです。Dockerは「コンテナ」と呼ばれる軽量な仮想環境を提供し、アプリケーションとその実行に必要なすべてのものをパッケージ化します。これにより、どのような環境でも同じように動作するWordPress開発環境を簡単に構築・管理できるようになります。
Docker導入のメリットを再確認
DockerをWordPress開発に導入することで得られるメリットは計り知れません。主な利点として、以下の点が挙げられます。
- 環境構築の再現性: どのPCでも、チームメンバー間でも、完全に同じ環境を構築できるため、「私の環境では動くのに…」といった問題がなくなります。
- 高速な環境起動:一度構築すれば、コマンド一つで必要なサービス(Webサーバー、データベースなど)を素早く起動・停止できます。
- ローカル環境の汚染防止: ホストOSに直接WordPressやPHP、MySQLをインストールする必要がないため、ローカル環境をクリーンに保てます。
- プロジェクトごとの独立性: 複数のWordPressプロジェクトを完全に分離した環境で開発でき、バージョン競合の心配がありません。
エンジニアDockerを使えば、例えば「PHP7.4のWordPressサイト」と「PHP8.1のWordPressサイト」を同時に立ち上げて開発できますし、ローカルPCのOSがMacでもWindowsでも同じように動くのが強力ですね。
デザイナーそれはすごい! 私もデザインしたテーマをテストする時、開発者さんの環境とズレて表示崩れが起きることがあったので、同じ環境で確認できるのは安心ですね。
DockerでWordPress環境を構築する基本ステップ
それでは、具体的にDockerを使ってWordPress開発環境を構築する手順を見ていきましょう。今回は、複数のコンテナをまとめて管理できる「Docker Compose」を利用します。
必要なディレクトリ構造とファイルの準備
まずは、WordPressプロジェクトのための基本的なディレクトリ構造を作成します。ここでは、WordPress本体のファイル、Docker Composeの設定ファイル、そしてWordPressコンテナ用のDockerfileを配置します。
.
├── docker-compose.yml
├── wordpress/
│ └── Dockerfile
└── www/
└── .gitkeep (またはWordPress本体を配置)
www/ ディレクトリにWordPress本体のファイルを配置します。初回は空でも構いません。
docker-compose.ymlでコンテナを定義する
docker-compose.yml は、WordPress環境に必要なWebサーバー(NginxまたはApache)、PHP、MySQL、そしてWordPress本体のコンテナを定義するファイルです。ここでは、PHPとMySQLをベースにWordPressを動かす構成を例に挙げます。
version: '3.8'
services:
wordpress:
build: ./wordpress
volumes:
- ./www:/var/www/html
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress_password
WORDPRESS_DB_NAME: wordpress_db
depends_on:
- mysql
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: wordpress_db
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress_password
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
この設定では、ポート8000でWordPressにアクセスできるようになります。また、データベース接続情報もここで定義しています。
WordPressコンテナ専用のDockerfileを作成する
WordPressコンテナのカスタマイズが必要な場合は、wordpress/Dockerfile を作成します。例えば、特定のPHP拡張機能のインストールや、Composerの導入などが可能です。
FROM wordpress:latest
# 必要なPHP拡張機能をインストールする場合
# RUN docker-php-ext-install opcache pdo_mysql
# 追加のツールをインストールする場合 (例: git, zip)
# RUN apt-get update && apt-get install -y \
# git \
# zip \
# unzip \
# && rm -rf /var/lib/apt/lists/*
# 必要に応じてComposerをインストール
# COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
WORKDIR /var/www/html
ここでは、ベースとなるwordpress:latestイメージを使用し、必要に応じてカスタマイズする例を示しています。コメントアウトされている部分は、必要に応じてアンコメントして利用してください。
いざ、環境起動とWordPressのインストール!
すべてのファイルが準備できたら、ターミナルでdocker-compose.ymlがあるディレクトリに移動し、以下のコマンドを実行します。
docker-compose up -d
このコマンドでWordPressとMySQLのコンテナがバックグラウンドで起動します。しばらく待ってからブラウザで http://localhost:8000 にアクセスしてください。WordPressのインストール画面が表示されるはずです。
初期設定を進める際、データベース接続情報には、docker-compose.ymlで定義した内容を入力します。
- データベース名:
wordpress_db - ユーザー名:
wordpress - パスワード:
wordpress_password - データベースホスト:
mysql(サービス名)
これで、あなたのローカル環境にDockerを使ったWordPress開発環境が完成しました!
エンジニアもしポート8000がすでに使われていたら、docker-compose.ymlのports設定を"8001:80"のように変更して再起動してみてくださいね。
デザイナーなるほど!起動コマンドもたったこれだけなんですね。これで開発環境の準備でモタつくこともなくなりそうです!
まとめ
- Dockerを使えば、WordPress開発環境の構築が劇的に簡単になり、環境の再現性とポータビリティが格段に向上します。
docker-compose.ymlを使って、Webサーバー、データベース、WordPressなどの複数のサービスを一元的に管理できます。DockerfileでWordPressコンテナを細かくカスタマイズし、プロジェクトに最適な環境を構築することが可能です。- コマンド一つで環境の起動・停止ができ、ローカル環境を汚すことなく複数のプロジェクトを並行して進められます。
DockerはWordPress開発における強力なツールであり、一度導入してしまえば、今後の開発体験が大きく変わることを実感できるでしょう。ぜひこの機会にDockerでのWordPress開発を始めてみてください。あなたの開発ライフがよりスムーズで効率的になるはずです!