buildah-unshareでbuildahスクリプトが実行されているかどうかをテストする方法は?

buildah-unshareでbuildahスクリプトが実行されているかどうかをテストする方法は?

用途がある場合は、buildah mount文書で指定されているのと同じ方法を使用してください。

mnt=$(buildah mount $ctr)

私のスクリプトを呼び出すsh ./build.sh

ルートレスモードでは、ドライバオーバーレイを使用したインストールを実行できません。buildah unshareセッションで実行する必要があります。

問題は、ここでエラーが発生するとスクリプトが終了しないことです。テストで確認できますが、不必要に何かをしているという事前判断がif [-z $mnt]; then echo "Run with buildah-unshare; exit; fiまだあるので理想的ではありません。buildah from

ルートレスbuildahをサポートしたい場合にbuildahを実行していることを確認する方法はありますかbuildah unshare

ベストアンサー1

1つの方法は、rootユーザーがユーザーにマップされていることを確認することです。デフォルトのユーザー名空間で実行すると、cat /proc/self/uid_mapuid = 0が0にマップされていることがわかります。これはすべてのユーザーの長さを表します4294967295。これは仮想マッピングです(man namespaces詳細については参考資料を参照)。

$ cat /proc/self/uid_map
0          0 4294967295

仮想地図の場合いいえこのファイルはサブユーザーの名前空間にあります。

# If we find the dummy line, error and exit
grep -lE '^\s+0\s+0' /proc/self/uid_map       \
  && echo "Please run under buildah unshare"  \
  && exit

おすすめ記事