我有以下dockerfile:
FROM arm64v8/python:3.8-alpine
ADD ./src /app
WORKDIR /app
#RUN pip install --no-cache-dir -r requirements.txt
RUN apk update && apk add bash
CMD ["/usr/local/bin/python","attack.py"]
但是,当我尝试使用
构建它时sudo docker build --platform linux/arm32v6 -f docker/Dockerfile -t test .
当我尝试运行pip install或apk更新时,出现以下错误:
我注释掉了这两行,并尝试使用
对其进行调试docker run -it test /bin/ash
以及usr / bin / ash; usr / bin / sh; / bin / sh等
这些都失败,并显示上述错误。
为什么?非常感谢您的帮助。
答案 0 :(得分:0)
如果您查看基础映像arm64v8/python:3.8-alpine,它将在docker build结束时删除所有内容,所有内容也意味着APK
,因此这就是您的命令失败的原因,并且也没有{{ 1}},因此您将无法使用bash运行容器。
您可以将此图片视为草稿,只有bash
。
答案 1 :(得分:0)
“没有这样的文件或目录”将从内核中寻找您的qemu静态二进制文件。您应该使用--fix-binary
选项配置qemu静态二进制文件,这将导致F
文件中的/proc/sys/fs/binfmt_misc
标志。在chroot或安装名称空间环境中运行时,需要此文件来支持binfmt。如今,在大多数发行版中,都涉及安装新版本的binfmt_misc静态二进制文件。
更多详细信息,请访问https://www.kernel.org/doc/html/v4.12/admin-guide/binfmt-misc.html
Debian错误在这里:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=868030
以及类似的Ubuntu问题:https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1815100