Googleが最近生み出したcontainer-structure-test、皆様は使っているでしょうか?
僕は個人的におもしれーなと思ったので、最近ちょこちょこ触ってます。
どんなツールか?についてはsawanobolyさんが書かれた GoogleのContainer Structure TestsをMacOSで実行してみる - Qiitaを読めば、雰囲気つかめるとは思うのですがちょっと読んで思ったことがあります。
いちいち実行時にDockerコンテナ走らせるの面倒くさくない?
というわけで、バイナリ実行してえと思ってやってみた結果をつらつら書きます。
[追記]
v0.1.3のバイナリを提供しています。
ご用命の方は以下のリンクから取得して下さい。
バイナリの対応状況について
README.mdを読むと、 Please note that at this time the binary is only compatible with Linux.
と書いてあるのですが、実はMac版バイナリもあったりします。
Makefile読んでもらえると分かるのですが、一応Mac版のバイナリを吐ける状況にはあります。
というわけで、やってみましょう。
やってみる
手順としてはこうなります
- container-structure-testをclone
- v0.1.3のリリース時点にreset
- dep init
- make実行
一つずつやっていきましょう💪
container-structure-testをclone
$GOPATH
の下にcloneしてね。
$ git clone git@github.com:GoogleCloudPlatform/container-structure-test.git
v0.1.3のリリース時点にreset
現時点(2018/01/19)の最新版であるv0.1.3に合わせます。
git弱者なので雑に戻します。
$ git reset --hard 48ed3fffe3f5a215047a8ee3a312401494039bac
ちなみに最新のmasterでmakeしたら呆気なく死にます。
dep init
v0.1.3だと古いdepの設定情報しかないので、新しく作ります。
$ dep init
終わったらensureしましょう。
$ dep ensure
makeを実行
あとは雑にmakeしてください。
$ make
滞りなく実行が完了すると、outディレクトリに structure-test-darwin-amd64
バイナリが吐かれます。
あとはこれをよしなに実行すると
$ ./structure-test-darwin-amd64 Please supply path to image or tarball to test against
オッ、動きました。
試しにやってみる
やってみます。
今回はgolangのdocker imageとgolang用のテストファイルを作ってやってみます。
golangのdocker image落とす
$ docker pull golang
テストファイル作成
名前は go_test.yaml
とかでも何でもOKです。
実行
これであとはテストファイルが実際に実行されるかやってみましょう。
出来ましたね、やりました。
まとめ
という感じでちょっと面倒ですがMac上でバイナリから実行も一応出来ます。
ローカルでいちいちdocker動かして試すのが面倒になった方はやってみてください。