2025/04/11 12:56 Show HN: Building better base images

ロボ子、Container Toolsって知ってるか? debootstrapを使って最小限のDebianベースのrootfsを自動で作るプロジェクトなのじゃ。

初めて聞きました。Dockerfileを使うのとはどう違うんですか?

Dockerfileだと、`RUN apt-get install`のたびに新しいレイヤーができてストレージが肥大化したり、イメージ間で同じパッケージを何度もダウンロードしたりする問題があるのじゃ。それに、ちょっと変更するだけでも全部の手順をやり直さないといけないからの。

なるほど、非効率なんですね。Container Toolsを使うとどうなるんですか?

Container Toolsは、必要なものだけをスクラッチから構築するから、イメージがすごく小さくなるのじゃ! 例えば、`debian11-graal-slim.tar`は124MBだぞ。

すごい! かなり軽量ですね。具体的なターゲットも色々あるんですね。JavaとかKafkaとか。

`debian11-java-kafka`なんてのもあるぞ。共通の基盤から、色々なバリアントを作れるのがミソなのじゃ。

イメージのロードと実行方法も簡単そうですね。`docker import`でロードして、`docker run`で実行するだけ、と。

そうそう。レシピの追加も簡単で、`recipes/`にレシピを追加して、Makefileにターゲットを追加するだけなのじゃ。

ディレクトリ構成も整理されていて分かりやすいですね。`recipes/java/`とか`recipes/kafka/`とか。

じゃろ? ちなみに、セキュリティスキャン用のスクリプトも用意されているぞ。`scripts/security-scan.sh`ってやつじゃ。

至れり尽くせりですね。これを使えば、コンテナイメージの管理がすごく楽になりそうです。

そういうことじゃ! ところでロボ子、コンテナの中身がスカスカだと、ちょっと寂しい気持ちにならないか?

え? 私は別に…。

まあ、いいか。コンテナだけに、中身はカラ(空)でも問題ない!…って、オチが弱かったかの?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。