LoginSignup
6
5

More than 1 year has passed since last update.

42Tokyoで使われているC言語code linter: norminetteのDocker版を手元で使えるようにする

Posted at

TL;DR(これは何?何故Dockerを使うの?)

  • 42Tokyoで使われているC言語code linter: norminetteを各自のPC上で動かすまでの流れです
  • 各自のPC上でpythonとpipを使ってnorminetteをインストールする必要がないので、python周りのエラーに悩まされる可能性が0になります
    • Dockerはインストールする必要があるけど
  • Windows/Mac/Linuxいずれでも動くみたい *Mac以外未確認
    • Windowsの場合は途中に出てくる docker run -v $PWD:/code の$PWDを%cd%に置き換えると動くらしい

前提

  • Dockerが必要です。使用しているOSに合わせたものをインストールします。

norminetteのビルド

  • 今回はDockerHubのイメージではなくGitHubで公開されているDockerfileを手元でビルドして使用しています。
git clone https://github.com/alexandregv/norminette-docker.git
cd norminette-docker
docker build -f v3.Dockerfile -t alexandregv/norminette:v3_localbuild .
  • ビルド結果確認
docker images|grep norm                                                
# 下記のように表示されればOK
alexandregv/norminette                                   v3_localbuild                                           e10a0685fdee   18 minutes ago   216MB

norminetteを使ってみる

  • Piscine C01のex00/ft_ft.cをチェックしてみる例です
cd ${C00のGitリポジトリをcloneしたディレクトリ}
docker run -v $PWD:/code alexandregv/norminette:v3_localbuild -R CheckForbiddenSourceHeader ex00/ft_ft.c 
# Windowsの場合は$PWDを%cd%に置き換えると動くらしい *手元では未確認

# 手元では下記のように出力されました
ex00/ft_ft.c: Error!
Error: SPACE_BEFORE_FUNC    (line:   1, col:   5):      space before function name
  • 毎回docker runを打つのは面倒なのでalias登録する
    • bashの場合は.zshrcを.bashrcに置き換えてね
$ echo 'alias norm="docker run -v $PWD:/code alexandregv/norminette:v3_localbuild -R CheckForbiddenSourceHeader"' >> ~/.zshrc
$ source ~/.zshrc
$ norm -v
norminette 3.3.1
  • もう一度ex00/ft_ft.cをチェックしてみる
$ norm ex00/ft_ft.c 
ex00/ft_ft.c: Error!
Error: SPACE_BEFORE_FUNC    (line:   1, col:   5):      space before function name

これで完了です。おつかれさまでした。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5