📝
container-structure-testによるコンテナのテスト
Googleが作成しているcontainer-structure-testというコンテナをテストするツールを試したのでメモ。
かなり単純なツールなのでぶっちゃけREADMEに書いてあることを読めばわかるんだけど一応情報をまとめた。
Googleのブログで紹介されている記事はこちら。
container-structure-test について
- コンテナイメージにあるファイルやコマンドの実行結果などをテストするツール
- yamlやjson形式で書いた設定ファイルを元に書いた設定を満たしているかのテストをコンテナイメージに対して行うことができる
- テスト可能な項目は下記
- commandTests: コマンドを実行して出力結果などをチェックできる
- fileExistenceTests: 指定のファイルやフォルダが存在しているかと、その権限などのチェックができる
- fileContentTests: ファイルの中身をテストできる
- metadataTest: コンテナのmetadataをテストできる(ラベルとか以外にもWORKDIRとかCMDなどもテストできる)
- licenseTests: ライセンスファイルのテストができる
- globalEnvVars: 環境変数のテストができる
インストール方法
にある通りバイナリをダウンロードして設置するだけ。
コマンドの実行例
下記のように
- テスト対象のイメージ
- テスト内容を記述した設定ファイル
を指定して実行するだけ。
$ container-structure-test test \
--image gcr.io/registry/image:latest \
--config config.yaml
実際の設定ファイル例
下記にテスト用の設定ファイルがある。
schemaVersion
というのを指定しないとエラーになるので注意が必要。
感想
- fileExistenceTests
- metadataTest
- globalEnvVars
あたりが結構よく使いそうなので、あまり難しいこと考えなくても雑にこのあたりの必要そうな項目だけチェックするのに使って良いと思った。
最近だとmulti-stage buildやmulti-platform buildとか、 ARGS
を使って複雑なビルドをすることがあるので、Dockerfileを軽く読んだだけだとビルド結果が正しいかを保証できないことがあると思うので、とりあえず気になる点だけでもテストするのが良さそう。
Discussion