Table of contents
@wordpress/env (wp-env)
プラグインやテーマのビルド用とテスト用のWordPressローカル環境を簡単に セットアップできます。
- @wordpress/env (ja.wordpress.org)
- Homepage (github.com) [EN]
- WP-CLI Commands (wordpress.org) [EN]
前提ソフトウェア
Docker, docker-compose, Node.js, NPM
Quickstart
cd /path/to/a/wordpress/plugin
npm install -g @wordpress/env
wp-env start
WordPressはlocalhost:8888
で確認できます。 デフォルトのログインアカウントはユーザー名admin
、パスワードpassword
。
.wp-env.json
config
フィールドでwp-configの値を指定できる。
仮想環境や別ホストでwp-envを起動したい場合:
"config": {
"WP_TESTS_DOMAIN": "http://192.168.1.xxx",
"WP_SITEURL": "http://192.168.1.xxx",
"WP_HOME": "http://192.168.1.xxx"
}
現状の把握
Dockerコンテナの稼働状況の確認
稼働中のコンテナの表示を表示します。
docker ps
下記の例では、コンテナ名 (NAME列) がe7350d785574a7063b9d44419e0eda6a
で はじまっている下の4つがwp-envで作成されたコンテナです。 docker ps -a
は、すべてのコンテナを表示するコマンドになります。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
17876e21104a docker/getting-started "/docker-entrypoint.…" 29 seconds ago Exited (0) 12 seconds ago elastic_euler
f074c1215a11 wordpress:php7.4 "docker-entrypoint.s…" 8 minutes ago Up 7 minutes 0.0.0.0:8888->80/tcp, :::8888->80/tcp e7350d785574a7063b9d44419e0eda6a_wordpress_1
292ac223242a mariadb "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 0.0.0.0:49155->3306/tcp, :::49155->3306/tcp e7350d785574a7063b9d44419e0eda6a_mysql_1
d3f60ec47c96 wordpress:php7.4 "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 0.0.0.0:8889->80/tcp, :::8889->80/tcp e7350d785574a7063b9d44419e0eda6a_tests-wordpress_1
c38a155040f6 mariadb "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 0.0.0.0:49154->3306/tcp, :::49154->3306/tcp e7350d785574a7063b9d44419e0eda6a_tests-mysql_1
STATUSがExited (0) 12 seconds ago
となっているコンテナは、 停止しているコンテナになります。
コンテナ作成時の環境変数、docker-composeファイルの確認
wp-envをデバッグモードで起動します。
wp-env start --debug
デバッグモードで起動すると、コマンド実行直後に環境変数がYAML形式で表示され、 その後docker-composeファイルの表示、コンテナの作成プロセスなどが確認できます。
$ wp-env start --debug
ℹ Config:
{
"name": "my-plugin",
"dockerComposeConfigPath": "/home/USERNAME/wp-env/e7350d785574a7063b9d44419e0eda6a/docker-compose.yml",
"configDirectoryPath": "/home/USERNAME/my-plugin",
"workDirectoryPath": "/home/USERNAME/wp-env/e7350d785574a7063b9d44419e0eda6a",
"detectedLocalConfig": true,
"env": {
"development": {
.....
},
},
"debug": true,
"xdebug": "off"
}
Docker Compose Config:
{
"version": "3.7",
"services": {
"mysql": {
"image": "mariadb",
"ports": [
"3306"
],
"environment": {
"MYSQL_ROOT_PASSWORD": "password",
.....
}
}
}
}
環境変数workDirectoryPath
のディレクトリーでは、コンテナ作成に使用された docker-composer.ymlやDockerfileが確認できます。
一般的なトラブルシューティング
wp-envの再起動
wp-envの環境を再起動します。
wp-env stop
wp-env start
Dockerの再起動
Docker Desktopの場合、Dockerアイコンをクリックして”Restart Docker…“を 選択するか、Dashboardを起動してTroubleshoot画面で”Restart Docker Desktop”の Restartをクリックする。
systemdの場合:
sudo systemctl restart docker.service
Dockerを再起動後、wp-envを起動する。
wp-env start
データベースのリセット
wp-env clean all
wp-env start
データベースをリセットすると、環境内の投稿やページが削除されます。
Dockerコンテナとボリュームの削除
wp-envが作成したDockerコンテナとボリュームを削除します。
wp-env destroy
wp-env start
Docker環境の初期化
下記のコマンドを実行するとDocker管理下のすべてのデータが完全に削除されます。 これはwp-env以外で作成したデータも削除されることを意味します。
sudo docker system prune --all
Docker DesktopのDashboardを利用している場合は、Troubleshoot画面で “Reset factory defaults”をクリックします。
関連ページ
ブログ記事
下記に掲載を希望される方はご連絡ください (詳細)
- wp-env起動時のエラー修正方法 (otti.xyz)
- @wordpress/wp-env と @wordpress/create-blockで簡単にブロック開発環境を作る (webutubutu.com)
- WordPress開発環境をwp-envで簡単に作る (akinov.hatenablog.com)
- Vagrant上のDockerでWordPress開発環境のwp-envを使う (saaria.info)
- wp-envを使ってローカル環境を構築した感想 (dig-arts.net)
- Gutenberg ブロック開発の基本 (vektor-inc.co.jp)
- 進化を続けるwp-envの利用法紹介(データベース接続、xdebugほか) (capitalp.jp)
- wp-env を使って最小限のテーマ開発環境を構築する (ewigleere.net)
- Webサイト制作者必見!wp-envを活用したWordpresの環境構築 (ts-fort.com)
- wp-envでWordPress開発環境迷子に終止符を (photosynthesic.jp)
- wp-envを使ってWordPress開発を加速させる方法 (olein-design.com)
- Windows10のWSL環境でwp-envが使えない件 (higelog.brassworks.jp)
- wp-envでWordPress環境を簡単に作る方法 (infohub.cc)
- WSL2 + Docker + wp-envでモダンなWordPress開発環境を構築する (members.co.jp)