星期六, 6月 24, 2023

hadolint

名字裡有 lint 的,通常表示這是個用來檢查語法的工具。所以 hadolint 是個檢查用的工具,主要是用來檢查 Dockerfile 。

安裝方法

hadolint 的原始碼放在 github 上,可以直接透過這個網址去找最新的編譯好的版本來下載:https://github.com/hadolint/hadolint/tags

下載以後,變更權限,然後搬到 /usr/local/bin ,就可以使用了。

chmod +x hadolint-Linux-x86_64
mv hadolint-Linux-x86_64 /usr/local/bin/hadolint

使用

使用很簡單,帶入 Dockerfile 即可。

hadolint Dockerfile

執行以後,會出現 hadolint 覺得有問題的地方,這時候就可以參考 hadolint rules (要往下捲,找到 Rules) 的說明去修改 Dockerfile。修改完可以再重新執行檢查。

其他使用方式

除了可以下載執行檔以外,也可以透過 container 方式來運行,簡單的說就是 hadolint 工具被包在 Container image 裡,那用 docker run 或 podman run 就可以檢查。

docker pull hadolint/hadolint
docker pull hadolint/hadolint:v2.12.0-debian
docker pull hadolint/hadolint:v2.12.0-alpine

docker run --rm -i hadolint/hadolint < Dockerfile
docker run --rm -i hadolint/hadolint:v2.12.0-debian < Dockerfile
docker run --rm -i hadolint/hadolint:v2.12.0-alpine < Dockerfile

最後一種方式,是搭配 Visual Studio Code (vscode) 的 extension,如果你剛好是把 Visual Studio Code 當作主力的話,這很方便。從 Visual Studio Code 的 marketplace 上找 hadolint ,就可以安裝。安裝以後,在編輯 Dockerfile 時,下方就會出現檢查結果,邊修改邊檢查。

結論

Dockerfile 的檢查可以導入 CI 的流程裡,一方面是可以讓 Dockerfile 標準化,一方面透過這些規則,也可以縮小 Container image 的大小,加快 docker pull 的速度。

參考資料

沒有留言: