Docker

WordPressプラグインやWP-CLIのテストに使えるDocker環境”wpenv”を試してみた

wpenv – A Docker based testing environment for WordPress. Facebookでシェアされていたのを見て気になったので、飛行機待ちの間にとりあえず起動させ […]

広告ここから
広告ここまで

wpenv – A Docker based testing environment for WordPress.

Facebookでシェアされていたのを見て気になったので、飛行機待ちの間にとりあえず起動させてみました。

実行方法

以下のようにcurlbashでスクリプトを取得・実行します。
シェルコマンドの中では、docker pulldocker rundocker 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が必要になった場合は、これを使うようにすると良さそうです。

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts