gpt4 book ai didi

linux - 在 Docker 容器中更新 apk 期间出现错误的文件描述符错误......为什么?

转载 作者:行者123 更新时间:2023-12-02 09:33:18 26 4
gpt4 key购买 nike

运行后:

docker network rm $NETNAME
docker network create --driver bridge $NETNAME --subnet "${SUBNET}0/24"
docker run --name $NODENAME -it --net $NETNAME --ip 192.168.0.2 --volume --detach $IMGNAME

在容器内,作为 root,我运行 apk udpdate :
# apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.7/main: Bad file descriptor
WARNING: Ignoring APKINDEX.70c88391.tar.gz: Bad file descriptor
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.7/community: Bad file descriptor
WARNING: Ignoring APKINDEX.5022a8a2.tar.gz: Bad file descriptor
2 errors; 33 distinct packages available

...然后点击 Bad file descriptor错误。

还有许多其他人遇到了同样的错误:

CDN seems to be down and cannot get mirrors working #280

Repository problem? #279

关于如何解决此范围的建议来自:

"It's a DNS lookup error. Just add google DNS servers (8.8.8.8, 8.8.4.4) to your Docker host's deamon config file."



... 到 ...

"Add the following to your Dockerfile:"

RUN echo http://mirror.yandex.ru/mirrors/alpine/v3.5/main >
/etc/apk/repositories; \
echo http://mirror.yandex.ru/mirrors/alpine/v3.5/community >> /etc/apk/repositories



(您不应该这样做。永远不要添加来自非官方来源的软件包。)

解决方案

解决方案很简单。将这两行添加到您的 RUN 命令中:
rm -rf /var/cache/apk && \
mkdir /var/cache/apk && \

在 Dockerfile 中...
RUN apk add --update --no-cache bash \
git \
make \
clang \
g++ \
go && \
mkdir -p $REPO && \
mkdir -p $GODIR/src && \
rm -rf /usr/share/man && \
rm -rf /var/cache/apk && \
mkdir /var/cache/apk && \
apk del git clang

添加命令以删除和重新创建 /var/cache/apk目录感觉就像一个黑客。

我的 hack 有效,但是这个错误的根本原因是什么,谁应该修复它?

最佳答案

--no-cache选项允许不在本地缓存索引。
这有助于保持容器较小。
此外,它相当于 apk update在顶部和 rm -rf /var/cache/apk/到底。
所以你可以尝试这样使用它:

RUN apk add --update --no-cache bash \
git \
make \
clang \
g++ \
go && \
mkdir -p $REPO && \
mkdir -p $GODIR/src && \
rm -rf /usr/share/man && \
apk del git clang

关于linux - 在 Docker 容器中更新 apk 期间出现错误的文件描述符错误......为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48736212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com