BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Dockerfile Linter Hadolintでは多くの修正、改善がされ、ARM64バイナリをサポート

Dockerfile Linter Hadolintでは多くの修正、改善がされ、ARM64バイナリをサポート

ブックマーク

原文(投稿日:2022/04/02)へのリンク

長い期間待った後に、Hadolintの最近のリリースでは多くの修正、改善がされており、ARM64バイナリに対するサポートが追加された。

HadolintはHaskellで書かれたツールである。これにより開発者はDockerfileを書くための公式のベストプラクティスを実施できるようになる。パフォーマンスとメンテナンスの問題に悩まされるだけでなく、最適でないDockerfileは攻撃に対してより脆弱になる。

Hadolintでは、Dockerfileが解析されASTが構築される。その上でいくつかのルールが実行され、不正な使用法が検出される。HadolintではRUNステートメント内で使われるBashコードをリントするためにSpellCheckが活用されている。

Hadolintでは、CI/CDパイプラインとの統合に役立つCLIツールが提供される。次の例のように、Hadolintを簡単に実行できる。

hadolint Dockerfile

出力には、ルール違反に対応するメッセージのリストが表示される。それぞれについて、hadolintでは、その違反が発生する行番号とルールIDが示される(例「DL4000: error: MAINTAINERは非推奨になりました」)。違反はerror、warning、info、style、ignore、noneの6つの重要度のカテゴリに分類される。違反では、DLプレフィックスが付いたHadolintルール、あるいはSLプレフィックスが付いたSpellCheckルールのいずれかが参照される。

Hadolint CLIは、特定のルールを無視するためのいくつかのオプション、すなわち--ignoreをサポートする。どの重要度レベルが障害を引き起こすかを決定するための重要度のしきい値変更をするには、--failure-thresholdを使う。また、特定のルールのデフォルトの重要度を上書きするために、例えば--error--infoを使う。別手段として、必要なすべてのオプションをYAML設定ファイルに記録することもできる。

Hadolintは、コマンドラインから統合できるようになるだけではない。注目すべきは、Visual Studio CodeまたはGitHub Actionsと簡単に統合できることである。

Hadolintは、macOSのbrewやWindowsのscoopを使ってローカルにインストールでき、Dockerイメージとしても利用できる。Dockerfileをすばやく確認したり、手間なくツールを試すために、オンラインバージョンのHadolintを使うことができる。

作者について

この記事に星をつける

おすすめ度
スタイル

BT