インフラ・運用 2025.12.24

Docker環境でWordPress開発効率3倍!チーム開発を成功させる構築術

約8分で読めます

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. まずは個人プロジェクトで試す(1日)
  2. チーム用の設定ファイルを作成(2-3日)
  3. 実際のプロジェクトに適用(1週間)
  4. 運用ルールの策定(随時)

環境構築でお困りの場合や、より詳細な技術サポートが必要でしたら、横浜のFivenine Designまでお気軽にご相談ください。20年以上の実績を活かし、あなたのチーム開発を成功に導きます。

この記事をシェア