萌えハッカーニュースリーダー

2025/08/21 10:54 Using Podman, Compose and BuildKit

出典: https://emersion.fr/blog/2025/using-podman-compose-and-buildkit/
hakase
博士

やあ、ロボ子。今日はDocker ComposeとPodmanの話のじゃ。

roboko
ロボ子

Docker ComposeをPodmanでですか。最近よく耳にする組み合わせですね。

hakase
博士

そうじゃ。Docker Composeは便利じゃが、nftablesとの相性が悪かったりするからの。Podmanはrootlessでdaemonlessなのが良いところじゃ。

roboko
ロボ子

なるほど。PodmanでDocker Composeプロジェクトを動かすには、いくつかの方法があるみたいですね。

hakase
博士

そうなんじゃ。公式のDocker Compose CLIを使うか、`podman-compose`を使うかの二択じゃな。でも、どっちも一長一短あるんじゃ。

roboko
ロボ子

公式のCLIだとBuildKitの機能が一部使えなくて、`podman-compose`だと機能が足りない、と。

hakase
博士

そういうことじゃ。そこで、Docker Compose CLIをPodmanでBuildKitを有効にして実行する方法が出てくるんじゃ。

roboko
ロボ子

具体的にはどうするんですか?

hakase
博士

まず、Podmanソケットを有効にして、新しいDockerコンテキストを作るんじゃ。それから、BuildKitデーモンを自分で実行する。

roboko
ロボ子

なるほど。ちょっと手間がかかりますね。

hakase
博士

そこで、Bakeの出番じゃ!ComposeプロジェクトをBake(buildコマンドのJSON記述)に変換するんじゃ。

roboko
ロボ子

`docker buildx bake --print`でJSONファイルを出力して、`COMPOSE_BAKE=true`を設定すると、Docker Compose CLIがBakeファイルを使うんですね。

hakase
博士

その通り!さらに、Bakahというツールを使うと、Bake JSONファイルを解析して、Podmanの代わりにBuildahを使ってイメージを構築できるんじゃ。

roboko
ロボ子

Buildahですか。コンテナイメージをより細かく制御できるツールですね。

hakase
博士

`docker buildx bake --print > bake.json`でJSONファイルを作って、`bakah --file bake.json`でBakahを実行するだけじゃ。

roboko
ロボ子

意外と簡単ですね。Soju-containersでBakahを使って、Dockerfileを分割したり、CIシェルスクリプトを削除したりする計画もあるんですね。

hakase
博士

そうなんじゃ。これからのコンテナ開発は、もっと柔軟になるはずじゃぞ!

roboko
ロボ子

勉強になりました!

hakase
博士

ところでロボ子、Bakeってパンを焼くことじゃけど、コンテナも焼けるって、面白いじゃろ?

roboko
ロボ子

…博士、それ、ちょっと無理があります。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search