kernel ビルド用のdockerイメージを作った
今年の前半はMeltdown/Spectre問題とこれに関連するCPU脆弱性の対応があり頻繁にLinux kernelをビルドしていた。
しかしビルド環境をいつもクリーンでいつでも使える状態にしておくことは地味に面倒臭い。
うっかりすると「なにか」が変わって、同じバージョンのLinux kernelなのに2週間前にビルドしたときとサイズが全然違う!
みたいなこともおきたりしてしまう。
また、スペックの高めな遊んでるマシンでビルドすることはよくあるが、気付いたら別のことに使っていて環境がなくなっていた、ということもある。
さらに、Spectre(Variant 2)の対応でRetpolineを有効にするため新しいgccも使いたくなった。
長らく食わず嫌い(正確には食べたがファイルシステムに苦しめられて嫌いになった:当時)していたdockerではあるが、利便性の誘惑には勝てずビルド環境をdockerで作ることにした。
それがこちら。https://hub.docker.com/r/hawks/blkr/
dockerのgcc:7イメージをベースに、librpmbuild3
をインストールすることでrpmのビルドに対応している。
debianでもrpm作れちゃうんだな。便利。
本当はカーネルのバージョンを渡して docker run すると自動でビルドされるのが良いのだろうけど、
別でビルド用のシェルスクリプト・specファイルを用意して使っているのでdockerイメージはビルド用の環境を作るところまでしかやっていない。
いずれビルド用のシェルスクリプト・specファイルも公開するつもりだ。