最新の WordPress を気軽に試すための Docker / Docker Compose 設定です。
docker --version
Docker version 25.0.3, build 4debf41docker compose version
Docker Compose version v2.24.6-desktop.1- Apache 2.4
- PHP 8.2
- MySQL 8.x
- WordPress 日本語版 最新
- WP-CLI 最新
# WordPress イメージをビルド
docker compose build
# MySQL イメージのダウンロード
docker compose pull
# コンテナ起動
docker compose up -dDocker volume に置いている wp-content/uploads の所有者が最初は root になってしまっているので、 www-data に変更する必要があります。
docker compose exec -u root wordpress chown -R www-data wp-content/uploadsコンテナを起動すると localhost のポート 80 で WordPress が起動するのでブラウザまたはターミナルでインストール操作を行います。
ブラウザからインストールする場合のイメージ:
ターミナルからインストールする場合のイメージ:
WP_URL="http://localhost"
WP_ADMIN_USER="admin"
WP_ADMIN_EMAIL="example@example.com"
WP_ADMIN_PASSWORD="password"
docker compose exec wordpress \
wp --allow-root core install \
--url="$WP_URL" \
--title="WordPress サンドボックス" \
--admin_user="$WP_ADMIN_USER" \
--admin_email="$WP_ADMIN_EMAIL" \
--admin_password="$WP_ADMIN_PASSWORD" \
--skip-emailGitHub Codespaces でプレビューを利用する場合は、 URL が localhost ではないので以下の対応が必要です。
compose.yaml ファイルの build args の WP_CONFIG_EXTRA のコメントアウトされた行を安コメントします。
WP_CONFIG_EXTRA: "wp-config-extra-github-codespaces.txt"WordPress のインストール手続きをブラウザではなくターミナルから行います。
イメージ:
WP_URL="https://${CODESPACE_NAME}-80.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}"
WP_ADMIN_USER="admin"
WP_ADMIN_EMAIL="example@example.com"
WP_ADMIN_PASSWORD="password"
docker compose exec -u www-data wordpress \
wp core install \
--url="$WP_URL" \
--title="WordPress サンドボックス" \
--admin_user="$WP_ADMIN_USER" \
--admin_email="$WP_ADMIN_EMAIL" \
--admin_password="$WP_ADMIN_PASSWORD" \
--skip-emailwp は wordpress イメージにインストールされた WP-CLI です。
このコマンドはリポジトリ内の codespaces/install-wordpress-on-docker.sh に記述してあるので、上のコマンドの代わりにスクリプトを実行しても OK です。
./codespaces/install-wordpress-on-docker.shコンテナ起動直後に実行すると、 MySQL のプロセスが起動しきっておらずデータベース接続エラーが起こることがあります。 その場合は少し(数秒)待ってから再度コマンドを実行します。
ポートの公開設定( Visibility )が private だとブラウザでアクセスしたときに CSS などが正しく読み込まれないので、ポートの公開設定を public に変更します。
管理画面にログインできます。
触り終わったらコンテナを停止します。
docker compose downdocker volume rm wordpress-sandbox-ja_db_dataもしくはコンテナ停止時にオプション --volumes をつけることでも削除できます。
docker compose down --volumesコンテナに WP-CLI がインストールされています。
docker compose exec wordpress wpかんたんな説明記事を書きました。
WordPress コミュニティが wp-env という Node.js ベースの CLI ツールを提供しています。
wp-env はプラグインやテーマの開発・テストに有用な Docker ベースの環境をかんたんに立ち上げられる、 Docker / Docker Compose のラッパーです。
Docker 公式の WordPress イメージです。


