Mac OS X + Test Kitchen + kitchen-docker + boot2docker (on VirtualBox)という環境で kitchen testが頻繁に落ちた。
エラーは2種類。
- コンテナのdestroy中にfailed to remove one or more containers(kitchen destroyし直すと通る)
- コンテナのconverge中にconnection closed by remote host(数回リトライすると通る)
VirtualBoxのNICの送受信バッファ増やしてもコンテナ上のSSHの設定改善してもMTU見直しても結局改善しなくて疲れたので結局以下のワークラウンドでやっつけた、という話。
kitchen testをステップ毎にわけると、
$ kitchen destroy PATTERN && kitchen setup PATTERN && kitchen verify PATTERN
とほぼ等価なようだ。 失敗するのはdestroyやsetupなので、以下のように時々失敗するコマンドだけをリトライする。
$ retry kitchen destroy PATTERN && retry kitchen setup PATTERN && kitchen verify PATTERN