はじめに
この記事では、Docker と Docker Compose を利用して WordPress をローカル環境で構築する手順を記載します。
開発環境
開発環境は以下の通りです。
- Windows11
- Docker Desktop 4.36.0
- WordPress 6.9.0
- MySQL 9.5.0
- PHP 8.3
プロジェクト作成
まず、プロジェクト用のディレクトリを作成します。
mkdir wordpress-local
cd wordpress-local
次に、Docker Composeの設定ファイル compose.yaml を作成します。
compose.yaml
services:
db:
image: mysql:9.5 # MySQL 9.5の公式イメージを使用
container_name: wordpress-db # コンテナ名を指定
restart: always # コンテナが停止した場合に自動再起動
environment: # 環境変数の設定
MYSQL_ROOT_PASSWORD: rootpassword # rootユーザーのパスワード
MYSQL_DATABASE: wordpress # 作成するデータベース名
MYSQL_USER: wordpress # 作成するユーザー名
MYSQL_PASSWORD: wordpress # ユーザーのパスワード
volumes:
- db_data:/var/lib/mysql # データベースデータの永続化
ports:
- "3306:3306" # ホストとコンテナのポートマッピング
wordpress:
image: wordpress:6.9-php8.3-apache # WordPress 6.9 with PHP 8.3
container_name: wordpress-app
restart: always
depends_on:
- db # dbサービスが起動してから起動
ports:
- "8080:80" # ホストの8080ポートをコンテナの80ポートにマッピング
environment:
WORDPRESS_DB_HOST: db:3306 # データベースホスト
WORDPRESS_DB_USER: wordpress # データベースユーザー
WORDPRESS_DB_PASSWORD: wordpress # データベースパスワード
WORDPRESS_DB_NAME: wordpress # データベース名
volumes:
- wordpress_data:/var/www/html # WordPressファイルの永続化
volumes:
db_data: # データベース用の名前付きボリューム
wordpress_data: # WordPress用の名前付きボリューム
この設定ファイルでは、MySQLとWordPressの2つのサービスを定義しています。データの永続化のために、名前付きボリュームを使用しています。
以下のコマンドでコンテナを起動します。
docker compose up -d
コンテナが正常に起動したことを確認します。
docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
wordpress-app wordpress:6.9-php8.3-apache "docker-entrypoint.s…" wordpress About a minute ago Up About a minute 0.0.0.0:8080->80/tcp, [::]:8080->80/tcp
wordpress-db mysql:9.5 "docker-entrypoint.s…" db About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp
ブラウザで http://localhost:8080 にアクセスすると、WordPressの初期設定画面が表示されます。
