What is hadolint?
hadolint は Dockerfileのlinterです。
Dockerfile内でベストプラクティスに沿っていない書き方を見つけて警告を出してくれます。
hadolint for Visual studio code
hadolint - Visual Studio Marketplace
Dockerfile
を編集・保存していちいちlinterにかけるのも面倒くさいのでVS codeの拡張が存在します。
しかし、そこのREADME.md
にはhadolintをhomebrew経由でインストールしたものを利用する方法しか紹介されていません。
自分はdocker container内のhadolintを使いたかったので今回その方法について調べたのでTipsとして残しておきます。
How to use hadolint installed in a container
Add support for running hadolint from docker image · Issue #37 · ExiaSR/vscode-hadolint
幸いなことに、過去にissueが立っていて同じくコンテナの中のhadolintを使う方法について紹介してくれている人がいました。
利用の手順としては次のとおりです。
-
PATHが通っている適当なディレクトリに下のようなshell scriptを作成します。
最新のhadolintではエラーや警告に自動的に色付けがされましたが、エディタ内の警告メッセージでは色付けのためのコードがそのまま文字として出力されてしまうため見づらくなってしまいます。 そのため、--no-color
を指定して色付けを無効化します。#!/bin/bash docker run --rm -i hadolint/hadolint:latest hadolint - --no-color < "$@"
-
上で作ったコマンドをVS codeのhadolintの設定項目から指定する。
拡張が機能すると下のように警告があれば下線が引かれてエラーのレベルと内容が出るようになります。
たった2つの手順で簡単にVS codeでhadolintを使うことが出来るようになりました。
以上、簡単なtipsでしたが日々のDockerfile編集が楽になれば幸いです。
Enjoy your docker life!