2019-09-11に更新

hadolintでDockerfileの書き方を叱ってもらう(VSCode, CentOS)

最近の開発環境はとても親切になっていて、コードの補完とか、良くないコードの指摘とか、もはや君が書いてくれたらいいんじゃない?と言いたくなるくらいいろんな機能が充実してきている。

順調に飼いならされているぼくは、いろんなツールに叱ってもらいながらコードを書くのが当たり前になっていて、そうすると、叱ってくれない箇所があるとむしろ不安になってしまう。

そんなわけで不安になるものの一つがDockerのファイルで、dockerfileとかはベストプラクティスがあるんだから、それに沿って書き方チェックしてくれたらいいのになーと思っていた。

そしたら、そういうのがあることを教えてもらった。

これは使ってみるしかない。すでに何人もの人が試していて日本語の記述もいっぱいあるので、ここではぼくの普段使っている環境 VSCode + CentOS での手順をメモ。

68747470733a2f2f6861646f6c696e742e6769746875622e696f2f6861646f6c696e742f696d672f6361745f636f6e7461696e65722e706e67.png

hadolintのインストール

公式サイトによると、

You can download prebuilt binaries for OSX, Windows and Linux from the latest release page.

ということなので、リリースページからダウンロードしてきたファイルをそのまま実行するのがいいらしい。

apt-getで入れないと不安になっちゃうけど、まあ新しいツールはそんなもんよね

[ ~]$ cd /usr/local/bin/
[ /usr/local/bin]$ sudo curl -L -O https://github.com/hadolint/hadolint/releases/download/v1.17.1/hadolint-Linux-x86_64
[sudo] daisuke のパスワード:
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   611    0   611    0     0   1615      0 --:--:-- --:--:-- --:--:--  1616
100 3216k  100 3216k    0     0   598k      0  0:00:05  0:00:05 --:--:--  678k
[ /usr/local/bin]$ sudo chmod +x hadolint-Linux-x86_64 

試しに実行してみる

[ /usr/local/bin]$ hadolint-Linux-x86_64 ~/develop/dengen_map/docker/front/Dockerfile 
/home/daisuke/develop/dengen_map/docker/front/Dockerfile:3 DL3008 Pin versions in apt get install. Instead of `apt-get install <package>` use `apt-get install <package>=<version>`
/home/daisuke/develop/dengen_map/docker/front/Dockerfile:3 DL3015 Avoid additional packages by specifying `--no-install-recommends`

叱ってもらえる!

VSCodeから実行

VSCodeには、hadolint というプラグインが用意されている。これをインストールして、設定画面からhadolintのパスを設定する

image.png

そうすると、つぎからDockerfileを編集したときに、こんなふうに叱ってもらえるようになる!幸せ!もっと叱って!

image.png

いまのところ、docker-compose.ymlまでは見てくれないらしい。構文チェックだけでもやってくれるツールがほしいなあ。


daisuke furukawa

おひるねのできるフリーランサー。「モバイラーズオアシス」の中の人でもあります。

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

関連記事

コメント