てけノート

on the foot of giants

[docker]dockerコンテナに対して自動テストするならdockerspec

   


前回のngx_mrubyの記事でdockerコンテナ化すれば簡単、とか言いましたが、
mrubyも使って複雑な挙動となったnginxをどうテストするべきか?

そう、自動テストですね。

packerでビルドイメージ作成する場合などはserverspecを利用できます。
docker imageに対してもdocker-apiを利用すればできるんですが、
ここでは個人的にdockerspecを推したい。日本語の記事もないので。

なお、serverspec + docker-apiについては以下の記事が詳しいです。


Dockerspecの良さ

  1. Dockerfileの文法自体についてのテスト、imageの振る舞いについてのテストがまとめてかける
  2. 入れるgemが少ない、導入が楽
  3. serverspec, infrataster, capybaraの3種類のテストコードを同じgemで利用可能になる

Dockerspecの使い方

公式に書いてあるままですが以下。

1. Dockerspecのgemをインストールする

dockerspecはgemなので

2. テストを書く

Dockerspecでは、テストのスタイルは
Serverspec, Infrataster, Capybara の3つの中から好きなものを使えます。

例えばserverspecなら

といった具合。
簡単に導入できるのでぜひお試しください。

 - インフラ, プログラミング