WordPressプラグインやWP-CLIのテストに使えるDocker環境”wpenv”を試してみた
wpenv – A Docker based testing environment for WordPress. Facebookでシェアされていたのを見て気になったので、飛行機待ちの間にとりあえず起動させ […]
広告ここから
広告ここまで
目次
wpenv – A Docker based testing environment for WordPress.
Facebookでシェアされていたのを見て気になったので、飛行機待ちの間にとりあえず起動させてみました。
実行方法
以下のようにcurl
とbash
でスクリプトを取得・実行します。
シェルコマンドの中では、docker pull
とdocker run
とdocker exec
の3つが実行されていますので、Docker for MacなどでDocker環境を動かせるようにしておきましょう。
$ curl -L https://raw.githubusercontent.com/miya0001/wpenv/master/run.sh | bash -s 7.0 4.8.2 try
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1235 100 1235 0 0 1885 0 --:--:-- --:--:-- --:--:-- 1885
+ PHP_VERSION=7.0
+ WP_VERSION=4.8.0
+ CONTAINER_NAME=try
+ docker pull miya0001/phpenv:7.0
7.0: Pulling from miya0001/phpenv
bae382666908: Downloading [======================================> ] 51.35MB/67.11MB
29ede3c02ff2: Download complete
da4e69f33106: Download complete
8d43e5f5d27f: Downloading [==================================================>] 855B/855B
<中略>
+ docker exec try sudo service mysql start
* Starting MySQL database server mysqld
...done.
* Checking for tables which need an upgrade, are corrupt or were
not closed cleanly.
+ docker exec try ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
+ docker exec try mysql -u root -e 'GRANT ALL PRIVILEGES ON wp_cli_test.* TO "wp_cli_test"@"localhost" IDENTIFIED BY "password1";' -p1111
+ docker exec try bash -c 'echo "export WP_VERSION=4.8.0" >> /home/ubuntu/.bashrc'
+ '[' -e bin/install-wp-tests.sh ']'
+ echo -e 'SUCCESS!\nRun: docker exec -it try bash'
SUCCESS!
Run: docker exec -it try bash
SUCCESS! Run: docker exec -it try bash
が出ていればOKです。
コンテナに入ってみると、MySQLがセットアップされていることが確認できます。
$ docker exec -it try bash
ubuntu@f9aeb8cbecf0:/wpenv$ sudo service mysql status
* /usr/bin/mysqladmin Ver 8.42 Distrib 5.5.57, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version 5.5.57-0ubuntu0.14.04.1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 3 min 53 sec
Threads: 1 Questions: 586 Slow queries: 0 Opens: 189 Flush tables: 1 Open tables: 41 Queries per second avg: 2.515
スクリプト内のログイン情報でDBにも接続できています。
$ mysql -u wp_cli_test -ppassword1
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 50
Server version: 5.5.57-0ubuntu0.14.04.1 (Ubuntu)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)
オプションなど
コマンド実行時にPHP/PHPUnitとWordPressのバージョン、そしてDockerのコンテナ名を指定できます。
$ curl -L https://raw.githubusercontent.com/miya0001/wpenv/master/run.sh | bash -s <tag> [wp_version] [container-name]
PHP / PHPUnitのバージョンについては、wpenv#the-list-of-available-tagsから確認できます。
使い所など
README.mdに記載されていますが、WordPressプラグインのユニットテスト環境やWP-CLIでのbehatテスト向けに作られている様子です。
ですのでTravisCIやCircleCIなどのCIサービス上で走らせるテストのためにWordPressが必要になった場合は、これを使うようにすると良さそうです。