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