2025年10月21日火曜日

buildah 超入門

buildah 超入門

概要

buildah を使ってみました
基本は docker のように使えますが rootless 実行するのがかなり面倒そうです

環境

  • Ubuntu 24.04
  • buildah 1.33.7
  • docker 28.5.1

インストール

  • sudo apt -y update
  • sudo apt -y install buildah

apt の公式リポジトリからインストールできますが最新版はインストールできません

イメージのビルド (rootモード)

  • sudo buildah build -f Dockerfile -t lab .

sudo 付きは root モードなのであまりお勧めできません

イメージのビルド (rootless モード)

不明

Error during unshare(CLONE_NEWUSER): Permission denied
ERRO[0000] parsing PID "": strconv.Atoi: parsing "": invalid syntax
ERRO[0000] (Unable to determine exit status)

になり実行できませんでした unshare --user --map-root-user --mount あたりが実行できないと rootless 実行は厳しいです

確認

  • sudo buildah images
REPOSITORY                 TAG                     IMAGE ID       CREATED          SIZE
localhost/lab              latest                  6b467d5adf55   31 seconds ago   129 MB
docker.io/library/python   3.12.11-slim-bookworm   688a685f6a1f   2 months ago     129 MB

イメージのプッシュ

  • sudo buildah login your-container-registry-address
  • sudo buildah tag localhost/lab your-container-registry-address/username/reponame
  • sudo buildah push your-container-registry-address/username/reponame

最後に

基本は docker コマンドと同様に使えます
rootless 実行が良い点なのですが rootless 実行できるようにするまでがかなり大変そうなのでそこが何ともといった感じです

当然ですが docker デーモンがなくても buildah を使ってビルドはできるのでそれだけでも kaniko の代用にはなりそうです

  • sudo systemctl stop docker
  • sudo systemctl stop docker.socket

参考サイト

0 件のコメント:

コメントを投稿