【Docker】ローカルでNu Html Checkerを使って構文チェックする方法

構築中の案件とかだと、なるべく外部に出さずにHTMLの構文チェックしたい場合があると思います。
構文チェックツールに関しては、前回の記事(「HTML Living Standardに対応した構文チェッカーと更新内容の確認方法」)で、HTML Living Standardを追うならNu Html Checkerを使うのが良さそうという結論に至りました。

なので今回は、Nu Html Checkerをローカルで実行する方法の中で一番簡単そうなDockerを使う方法を試してみました。

Github公式に書いてある通りの方法ですが、それと特定のエラーが発生した際の対応方法を合わせて紹介します。

dockerでサービスを起動、使用する

https://github.com/validator/validator

ターミナルを起動して、下記コマンドを実行します。

$ docker run -it --rm -p 8888:8888 ghcr.io/validator/validator:latest

ずらずらっとセットアップのメッセージが出力されていき、最後にChecker service started at http://0.0.0.0:8888/まで表示されたら準備完了。

この状態で「http://0.0.0.0:8888/」にアクセスすると、ネットでよく見かけるものと同じNu Html Checkerが表示されます。

あとは使い方や挙動も同じなので、後は普通に使うだけ!簡単!

ちなみに、起動したNu Html Checkerは[Ctrl]+[C]で終了できます。

「HTTP ERROR 400 Resource size exceeds limit.」エラーが発生

上記の方法で構文チェックを行なっていたところ、とある時結果画面で「HTTP ERROR 400 Resource size exceeds limit.」というメッセージが表示されました。
リソース サイズが制限を超えているということなので、ソースコードが長すぎたらしい。

こちらの対処法として、Nu Html Checkerを起動する時にリソース制限の上限をあげる方法が下記に書いてありました。

Modify maximum request size system property “nu.validator.servlet.max-file-size” when running docker image?

docker run -it --rm -p 8888:8888 \
	-e JAVA_TOOL_OPTIONS=-Dnu.validator.servlet.max-file-size=8097152 \
	validator/validator:latest

ただ、このまま使うと「リポジトリが存在しないかログインが必要だよ!」というエラー(docker: Error response from daemon: pull access denied for validator/validator,…)が発生してしまうので、validator/validator:latestを以下をように修正してから実行。

docker run -it --rm -p 8888:8888 \
	-e JAVA_TOOL_OPTIONS=-Dnu.validator.servlet.max-file-size=8097152 \
	ghcr.io/validator/validator:latest

これで起動したNu Html Checkerだと、エラーは出ず問題なくチェックできました。

使ってみて

思っていたよりお手軽にローカルで起動できてびっくりしました。
DockerはWebと同じ形でNu Html Checkerを利用できるので、気兼ねなく構築中サイトの構文チェックに使っていけますね。
ボリュームのあるソースコードの場合、max-file-sizeを指定してあげる方法を使えばネット速度が遅い時等も出番がありそうです。

ちなみに、Nu Html Checkerの詳細やバージョンに関しての記事もあるのでよかったらどうぞ。

brewを使った場合のNu Html Checkerの使い方や複数ページのチェック方法はこちら。