首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试buildah脚本是否在buildah-unshare下运行?

如何测试buildah脚本是否在buildah-unshare下运行?
EN

Unix & Linux用户
提问于 2020-11-14 22:57:37
回答 2查看 189关注 0票数 0

如果我有一个使用buildah mount的脚本。我使用文档指定的相同方式,

代码语言:javascript
复制
mnt=$(buildah mount $ctr)

如果我调用我的脚本sh ./build.sh,我会得到

无法在无根模式下使用驱动程序覆盖挂载。您需要在buildah unshare会话中运行它。

问题是,在这里出现故障时,脚本不会终止。我可以通过测试if [-z $mnt]; then echo "Run with buildah-unshare; exit; fi来检查它,但这并不理想,因为那时我仍然拥有我正在做的以前的buildah from

如果您试图支持无根的buildah,有什么方法可以确保在buildah unshare下运行buildah呢?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2020-11-14 23:47:38

一种方法是确保根用户映射到某个对象。如果在主用户名称空间上运行cat /proc/self/uid_map,您将看到uid=0映射为0,对应于所有用户4294967295的长度。这是一个虚拟映射(更多信息请参见man namespaces )。

代码语言:javascript
复制
$ cat /proc/self/uid_map
0          0 4294967295

如果该文件中的虚拟映射是而不是,则您处于子用户命名空间中。

代码语言:javascript
复制
# 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
票数 0
EN

Unix & Linux用户

发布于 2020-11-16 14:34:27

在当前的buildah版本中,当不运行用户名称空间时,buildah mount就会崩溃。

代码语言:javascript
复制
$ buildah mount
cannot mount using driver overlay in rootless mode. You need to run it in a `buildah unshare` session
$ echo $?
125
$ buildah -v
buildah version 1.17.0-dev (image-spec 1.0.1-dev, runtime-spec 1.0.2-dev)
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/619664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档