「WordPress」をDockerで構築(初心者)

【簡単】WordPress環境をDockerで構築手順

1)作業フォルダを作成

2)1)内に「docker-compose.yml」を作成

version: "3.7"
services:
 db:
  image: mysql:8.0
  container_name: mysql8
  restart: always
  environment:
    MYSQL_ROOT_PASSWORD: password # rootユーザのパスワード
    MYSQL_DATABASE: db_local # WordPress用データベース名
    MYSQL_USER: wp_user # WordPress用データベース接続ユーザ名
    MYSQL_PASSWORD: password # WordPress用データベース接続パスワード
 WordPress:
  image: wordpress:latest
  container_name: wordpress
  restart: always
  depends_on:
     - db
  ports:
     - 10090:80
  environment:
    WORDPRESS_DB_HOST: db:3306 # データベースサーバ名:ポート番号
    WORDPRESS_DB_USER: wp_user # WordPress用データベース接続ユーザ名(dbの内容に合わせる)
    WORDPRESS_DB_PASSWORD: password # WordPress用データベース接続パスワード(dbの内容に合わせる)
    WORDPRESS_DB_NAME: db_local # WordPress用データベース名(dbの内容に合わせる)
    WORDPRESS_DEBUG: 1 # デバッグモードON
  volumes:
    - ./wp-content:/var/www/html/wp-content
  #    - ./html:/var/www/html
 phpmyadmin:
  image: phpmyadmin/phpmyadmin:latest
  container_name: phpmyadmin_ingrid
  restart: always
  depends_on:
     - db
  ports:
     - 10099:80

volumesは画像のパス等にあわせてください

ボリュームマウントの概念

Dockerコンテナは、デフォルトで隔離された環境を提供します。これにより、コンテナ内のファイルシステムはホストマシンから独立しています。しかし、多くの場合、ホストマシン上のファイルやディレクトリをコンテナ内で直接利用したい場合があります。このような場合にボリュームマウントが使用されます。

ボリュームマウントの構文は以下の通りです

volumes:
  - <ホストのパス>:<コンテナのパス>
Host Machine ./wp-content/ themes/ plugins/ uploads/ languages/ WordPress Container /var/www/html/wp-content/ themes/ plugins/ uploads/ languages/

3)作業ディレクトリにて下記コマンド

docker-compose up -d

多少時間がかかるかもしれません。

4)「Docker Desktop」で確認

エラーログの確認方法

1. Dockerコンテナ内でWordPressのエラーログを有効化

まず、WordPressのwp-config.phpにエラーログを有効にする設定を追加します。

phpコードをコピーするdefine('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

この設定により、エラーログがwp-content/debug.logに保存されます。

2. Dockerコンテナ内でエラーログを確認する

方法1: docker-compose execでコンテナ内に入って確認

Dockerコンテナ内に直接アクセスして、エラーログを確認することができます。

bashコードをコピーするdocker-compose exec <コンテナ名> bash

コンテナ内に入ったら、エラーログファイルにアクセスします。

bashコードをコピーするcat /var/www/html/wp-content/debug.log

<コンテナ名> は、WordPressが稼働しているコンテナの名前に置き換えてください。

方法2: docker-compose logsでコンテナのログを直接表示

WordPressやApache/Nginxのエラーログは、コンテナの標準出力にも表示される場合があります。以下のコマンドでログ全体を確認できます。

bashコードをコピーするdocker-compose logs -f <コンテナ名>

上記コマンドで、リアルタイムにエラーログを追跡しながら確認できます。

方法3: ログファイルをホストマシンにマウント

Dockerのdocker-compose.ymlファイルで、WordPressのwp-contentディレクトリをホストマシンと共有すると、ホスト側で直接debug.logを確認できます。たとえば、以下のように設定を変更します。

yamlコードをコピーするservices:
  wordpress:
    volumes:
      - ./wp-content:/var/www/html/wp-content

これにより、./wp-content/debug.logでホスト側からログを確認できるようになります。

参考サイト

【入門】Dockerで環境構築|WordPress環境をローカルPCに作ろう!
https://coosy.co.jp/blog/docker-environment