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ファイルも公開するつもりだ。

このエントリーをはてなブックマークに追加