LinkSearchMenuExpandDocument
Table of contents

@wordpress/env (wp-env)

プラグインやテーマのビルド用とテスト用のWordPressローカル環境を簡単に セットアップできます。

前提ソフトウェア

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”をクリックします。

ブログ記事

下記に掲載を希望される方はご連絡ください (詳細)

Back to top


Back to top

Copyright © 2021 Otti

Page last modified: