如何解决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 举报,一经查实,本站将立刻删除。