WordPressのチーム開発で環境構築に時間を取られていませんか?Dockerを活用することで、開発効率を3倍向上させ、「動かない」「環境が違う」のストレスを解消する実践的な構築方法をご紹介します。
WordPressのチーム開発、こんな悩みありませんか?
「ローカル環境では動くのに、本番では動かない」 「新しいメンバーの環境構築に半日かかった」 「PHPのバージョンが違って、プラグインが動かない」
WordPressのチーム開発で、こんな経験をお持ちの方は多いのではないでしょうか。弊社Fivenine Designでも、20年以上のWeb制作実績の中で、開発環境の統一は常に課題でした。
実際のプロジェクトで見えた課題
つい先日、横浜の製造業のクライアント様のWordPressサイトリニューアルプロジェクトで、こんな問題が発生しました。
- 開発者A: PHP 8.1、MySQL 8.0の環境
- 開発者B: PHP 7.4、MySQL 5.7の環境
- 本番サーバー: PHP 8.0、MySQL 8.0の環境
結果として、ローカルでは問題なく動作するコードが本番でエラーを出し、納期直前での緊急対応となってしまいました。この経験から、Docker環境の統一の重要性を痛感したのです。
Docker化で実現した「3倍の開発効率」とは
Docker環境を導入した結果、以下の劇的な改善が実現しました:
1. 環境構築時間:2時間 → 5分
従来は新メンバーの環境構築に約2時間かかっていましたが、Docker化により5分で完了するようになりました。
# たったこれだけで完了
git clone [リポジトリURL]
cd project-name
docker-compose up -d
2. 「動かない」問題:月10回 → 0回
環境の違いによる不具合が完全に解消され、開発チームのストレスが大幅に軽減されました。
3. デバッグ時間:平均30分 → 10分
環境起因の問題を疑う必要がなくなり、真の問題解決に集中できるようになりました。
実践的なDocker構成の構築術
基本的なdocker-compose.yml構成
version: '3.8'
services:
wordpress:
image: wordpress:php8.1-apache
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress_password
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wp-content:/var/www/html/wp-content
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
depends_on:
- db
db:
image: mysql:8.0
restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress_password
MYSQL_ROOT_PASSWORD: root_password
volumes:
- db_data:/var/lib/mysql
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
ports:
- "8081:80"
environment:
PMA_HOST: db
PMA_PORT: 3306
depends_on:
- db
volumes:
db_data:
チーム開発を成功させるポイント
1. 共通設定ファイルの管理
uploads.iniでPHPの設定を統一:
file_uploads = On
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
2. データベース初期化スクリプト
init.sqlで必要なテーブルやデータを自動投入:
-- 開発用のユーザー作成
INSERT INTO wp_users (user_login, user_pass, user_nicename, user_email, user_status)
VALUES ('dev_admin', MD5('dev_password'), 'Dev Admin', '[email protected]', 0);
-- 必要な設定値の投入
INSERT INTO wp_options (option_name, option_value)
VALUES ('siteurl', 'http://localhost:8080'),
('home', 'http://localhost:8080');
失敗談から学んだ重要な注意点
1. ボリュームマウントの落とし穴
最初の構築では、WordPressのコアファイルもマウントしていました。結果、アップデートが反映されずに混乱。wp-contentのみマウントが正解でした。
2. パーミッション問題
Linux環境とWindows環境でファイルパーミッションが異なり、アップロード機能で問題が発生。以下の設定で解決しました:
# Dockerfileに追加
RUN chown -R www-data:www-data /var/www/html/wp-content
RUN chmod -R 755 /var/www/html/wp-content
3. データベースの文字コード統一
文字化けを防ぐため、MySQL設定を追加:
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
開発フローの最適化
1. 開発開始時のコマンド
# 環境起動
docker-compose up -d
# ログ確認
docker-compose logs -f wordpress
# WordPressコンテナ内での作業
docker-compose exec wordpress bash
2. テーマ・プラグイン開発
# テーマファイルの編集(リアルタイム反映)
code ./wp-content/themes/your-theme/
# プラグインファイルの編集
code ./wp-content/plugins/your-plugin/
3. データベースのバックアップ・復元
# バックアップ
docker-compose exec db mysqldump -u root -p wordpress > backup.sql
# 復元
docker-compose exec -T db mysql -u root -p wordpress < backup.sql
導入後の成果
実際にDocker環境を導入したプロジェクトでは:
- 開発期間: 3ヶ月 → 2ヶ月に短縮
- バグ修正コスト: 50%削減
- 新メンバーの戦力化: 1週間 → 2日に短縮
- クライアント満足度: 大幅向上(納期遵守率100%達成)
クライアント様からも「今回は本当にスムーズでした。前の制作会社では納期遅延が常態化していたので、安心してお任せできます」との評価をいただきました。
今日から始める次のアクション
Docker環境でのWordPress開発を始めるには、以下のステップがおすすめです:
- まずは個人プロジェクトで試す(1日)
- チーム用の設定ファイルを作成(2-3日)
- 実際のプロジェクトに適用(1週間)
- 運用ルールの策定(随時)
環境構築でお困りの場合や、より詳細な技術サポートが必要でしたら、横浜のFivenine Designまでお気軽にご相談ください。20年以上の実績を活かし、あなたのチーム開発を成功に導きます。