tag:crieit.net,2005:https://crieit.net/tags/hadolint/feed
「hadolint」の記事 - Crieit
Crieitでタグ「hadolint」に投稿された最近の記事
2019-09-11T10:16:48+09:00
https://crieit.net/tags/hadolint/feed
tag:crieit.net,2005:PublicArticle/15364
2019-08-30T17:38:11+09:00
2019-09-11T10:16:48+09:00
https://crieit.net/posts/hadolint-Dockerfile-VSCode-CentOS
hadolintでDockerfileの書き方を叱ってもらう(VSCode, CentOS)
<p>最近の開発環境はとても親切になっていて、コードの補完とか、良くないコードの指摘とか、もはや君が書いてくれたらいいんじゃない?と言いたくなるくらいいろんな機能が充実してきている。</p>
<p>順調に飼いならされているぼくは、いろんなツールに叱ってもらいながらコードを書くのが当たり前になっていて、そうすると、叱ってくれない箇所があるとむしろ不安になってしまう。</p>
<p>そんなわけで不安になるものの一つがDockerのファイルで、dockerfileとかは<a target="_blank" rel="nofollow noopener" href="https://docs.docker.com/develop/develop-images/dockerfile_best-practices/">ベストプラクティス</a>があるんだから、それに沿って書き方チェックしてくれたらいいのになーと思っていた。</p>
<p>そしたら、そういうのがあることを教えてもらった。</p>
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">雑に書いたdockerfileやdocker-compose.ymlを添削してくれるサービスがほしい</p>— ナガモト@Glideエンジニア (@ngmt83) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/ngmt83/status/1165944603867877376?ref_src=twsrc%5Etfw">August 26, 2019</a></blockquote>
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">lint?もしかしてと思ったらありました!<a target="_blank" rel="nofollow noopener" href="https://t.co/oQqFRTYtI4">https://t.co/oQqFRTYtI4</a></p>— ナガモト@Glideエンジニア (@ngmt83) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/ngmt83/status/1165952421136220160?ref_src=twsrc%5Etfw">August 26, 2019</a></blockquote>
<p>これは使ってみるしかない。すでに何人もの人が試していて日本語の記述もいっぱいあるので、ここではぼくの普段使っている環境 VSCode + CentOS での手順をメモ。</p>
<p><a href="https://crieit.now.sh/upload_images/7f75bcaa94abb7a0778c2c80d92e41ce5d68dfa4e2903.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7f75bcaa94abb7a0778c2c80d92e41ce5d68dfa4e2903.png?mw=700" alt="68747470733a2f2f6861646f6c696e742e6769746875622e696f2f6861646f6c696e742f696d672f6361745f636f6e7461696e65722e706e67.png" /></a></p>
<h1 id="hadolintのインストール"><a href="#hadolint%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">hadolintのインストール</a></h1>
<p><a target="_blank" rel="nofollow noopener" href="https://github.com/hadolint/hadolint">公式サイト</a>によると、</p>
<blockquote>
<p>You can download prebuilt binaries for OSX, Windows and Linux from the latest release page.</p>
</blockquote>
<p>ということなので、<a target="_blank" rel="nofollow noopener" href="https://github.com/hadolint/hadolint/releases">リリースページ</a>からダウンロードしてきたファイルをそのまま実行するのがいいらしい。</p>
<p>apt-getで入れないと不安になっちゃうけど、まあ新しいツールはそんなもんよね</p>
<pre><code>[ ~]$ 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
</code></pre>
<p>試しに実行してみる</p>
<pre><code>[ /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`
</code></pre>
<p>叱ってもらえる!</p>
<h1 id="VSCodeから実行"><a href="#VSCode%E3%81%8B%E3%82%89%E5%AE%9F%E8%A1%8C">VSCodeから実行</a></h1>
<p>VSCodeには、<a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=exiasr.hadolint">hadolint</a> というプラグインが用意されている。これをインストールして、設定画面からhadolintのパスを設定する</p>
<p><a href="https://crieit.now.sh/upload_images/9d08c6d37e5274805ec35413f543d5ed5d68de8e5775d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9d08c6d37e5274805ec35413f543d5ed5d68de8e5775d.png?mw=700" alt="image.png" /></a></p>
<p>そうすると、つぎからDockerfileを編集したときに、こんなふうに叱ってもらえるようになる!幸せ!もっと叱って!</p>
<p><a href="https://crieit.now.sh/upload_images/9d08c6d37e5274805ec35413f543d5ed5d68df284ceda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9d08c6d37e5274805ec35413f543d5ed5d68df284ceda.png?mw=700" alt="image.png" /></a></p>
<p>いまのところ、docker-compose.ymlまでは見てくれないらしい。構文チェックだけでもやってくれるツールがほしいなあ。</p>
daisuke furukawa