生涯未熟

生涯未熟

プログラミングをちょこちょこと。

container-structure-testのMac版バイナリを召喚する

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動かして試すのが面倒になった方はやってみてください。