KubeConでも話題に上がっていたTrivyやDockleはもうみなさんご存知ですよね?w
CI/CDのサービスとしてGitHub Actionsを利用しているのですが、もっと手軽にTrivyやDockleを使用したいなと思っていました。
Trivyの方は公式でtrivy-actionがありますが、Dockleはなかったので作成してみました。
リポジトリはこちら -> dockle-action
trivy-actionに合わせてdockle-actionとネーミングしてみました (パクリとは言わせないぞ
公開しようとしたらMarketplaceへの公開許可がいるようで、さらに管理者権限ないとダメみたいなので、まだ公開できていません
かっさらうのは今がチャンス
GitHub Actions Marketplaceに公開しました
https://github.com/marketplace/actions/runs-dockle
actionを作成する上でのハマりポイント
以前にいくつかTypeScriptでactionを作成したことがあるのですが、今回はdockerを使用してactionを作ることにしました。そこでハマったポイントを紹介したいと思います。
最初は以下のように書いていました。
runs:
using: 'docker'
image: 'docker://goodwithtech/dockle:latest'
args:
- '--exit-code ${{ inputs.exit-code }}'
- '--exit-level ${{ inputs.exit-level }}'
- '${{ inputs.image }}'
これでGitHub Actions上でテストしたら flag provided but not defined: -exit-code 0
というエラーメッセージがdockleが出力しました。こちらでGitHub Actionsのエラーの全容を見ることができます。
なぜエラーになったかまだわかっていないのですが、trivy-actionを参考にさせていただき以下のように修正してみました。具体的にはargsパラメータに定義しているフラグと値の間をスペースから=に変更しました。
そしたらテストは無事パスしました。こちらから確認できます。
これからactionを作成する方は気をつけてください。
runs:
using: 'docker'
image: 'docker://goodwithtech/dockle:latest'
args:
- '--exit-code=${{ inputs.exit-code }}'
- '--exit-level=${{ inputs.exit-level }}'
- '${{ inputs.image }}'