Docker Compose を使って、WordPress + MySQL を立ち上げる方法です。今日はWordPressのテーマを作ろうと思って、久しぶりにWordPressをセットアップしようとしたのですが、すっかり手順を忘れていまして、調べたところ、Dockerを使うととても簡単にセットアップができることが分かったので手順を残しておきます。
環境
- macOS Mojave
- Docker Desktop Version 2.0.0.0
- WordPressコンテナ: wordpress:latest
- MySQLコンテナ: mysql:latest
手順
任意のディレクトリに docker-compose.yml
と .env
を下記の内容で作成します。
docker-compose.ymlファイルには、WordPressコンテナとMySQLコンテナを定義します。
version: '3' services: wordpress: image: wordpress:latest ports: - "3001:80" env_file: .env mysql: image: mysql:latest command: --default-authentication-plugin=mysql_native_password env_file: .env
※ 上記の mysqlのcommandについて: MySQL8から新しい認証方式に変わったため、旧来のログイン認証が行えません。ここでは旧来の認証方式に戻すオプションを設定しています。
.envファイルには、間違ってGitに上げると危険なアカウント情報などを定義します。
WORDPRESS_DB_NAME=wordpress_database WORDPRESS_DB_USER=wordpress_user WORDPRESS_DB_PASSWORD=wordpress_password MYSQL_ROOT_PASSWORD=root_password MYSQL_DATABASE=wordpress_database MYSQL_USER=wordpress_user MYSQL_PASSWORD=wordpress_password
上記のディレクトリで コンテナを起動します。
$ docker-compose up
これでWordPressを使う準備ができました。
http://localhost:3001/ にアクセスすると、WordPressが使えます。
補足
テーマやプラグインの開発をしたいときに、ホスト側(mac)のフォルダで作業をしたい場合があるかと思います。その場合は、volumes
を使って共有フォルダを設定します。
例) ホスト側(mac)の ./themes/my-theme
ディレクトリを、 ゲストの /var/www/html/wp-content/themes/my-theme
ディレクトリにマウントする場合は次のようになります。
docker-compose.ymlファイル
version: '3' services: wordpress: image: wordpress:latest ports: - "3001:80" volumes: - ./themes/my-theme:/var/www/html/wp-content/themes/my-theme env_file: .env mysql: image: mysql:latest command: --default-authentication-plugin=mysql_native_password env_file: .env
DockerはWordPressのテーマやプラグインの開発にはとても便利です。