微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Make 无法在 Alpine Linux 容器中以 root 身份运行 mkdir

如何解决Make 无法在 Alpine Linux 容器中以 root 身份运行 mkdir

所以,我正在尝试在 Alpine Linux Docker 容器中构建 musl-libc。 configure 脚本成功了,但是 make 立即停止,因为它不能运行 mkdir:

mkdir -p lib
make: mkdir: Operation not permitted
make: *** [Makefile:96: lib] Error 127

使用 strace,我可以看到它在检查对各种 mkdir 符号链接的访问权限时获取 EPERM,因此它实际上从未实际运行命令本身:

faccessat2(AT_FDCWD,"/usr/local/sbin/mkdir",X_OK,AT_EACCESS) = -1 EPERM (Operation not permitted)
faccessat2(AT_FDCWD,"/usr/local/bin/mkdir","/usr/sbin/mkdir","/usr/bin/mkdir","/sbin/mkdir","/bin/mkdir",AT_EACCESS) = -1 EPERM (Operation not permitted)

我不知道这是为什么。我以 root 身份运行 make,并且 /bin/busyBox 无论如何都为所有用户设置了可执行位。我可以从命令行很好地创建目录。这是怎么回事,我该如何解决

编辑: 根据要求,这是我正在使用的 Dockerfile:

FROM alpine

ENV UTILS='vim tmux gdb strace git mandoc'
ENV DEPS='gcc make'

RUN apk update && apk add $DEPS $UTILS
ADD musl-src /musl-libc
ENV NPROC=6
RUN cd musl-libc && ./configure --prefix=/usr --enable-debug && \
    make -j$NPROC
RUN cd musl-libc && make install

需要 ./musl-src 中的 musl 源。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。