用途がある場合は、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_map
uid = 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