/ bin / sh返回非零代码:docker alpine中为1

时间:2019-11-26 09:49:17

标签: docker dockerfile qemu alpine

我有以下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更新时,出现以下错误: enter image description here

我注释掉了这两行,并尝试使用

对其进行调试
docker run -it test /bin/ash

以及usr / bin / ash; usr / bin / sh; / bin / sh等
这些都失败,并显示上述错误。

为什么?非常感谢您的帮助。

2 个答案:

答案 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