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%に置き換えると動くらしい
- Windowsの場合は途中に出てくる
前提
norminetteのビルド
- 今回はDockerHubのイメージではなくGitHubで公開されているDockerfileを手元でビルドして使用しています。
- 現時点でDockerfileに不審な点はありませんが必要に応じて確認してくださいね
- https://github.com/alexandregv/norminette-docker
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
これで完了です。おつかれさまでした。