standard_init_linux.go:211:exec 用户进程导致 alpine linux 和 python“没有这样的文件或目录”

2023-12-06

我有一个目录,其中包含 docker 文件、attack.py 和requirements.txt。

使用它,我创建了以下 dockerfile:

FROM arm64v8/python:3.7-alpine

COPY qemu-arm-static /usr/bin

COPY ./ app-ids
WORKDIR /app-ids

RUN pip install --no-cache-dir -r requirements.txt

CMD["python","./attack.py"]

但是,pip install 行会抛出: standard_init_linux.go:211:exec 用户进程导致“没有这样的文件或目录”

我不明白为什么。使用 ls、pwd 等命令尝试调试此问题会产生相同的错误。

谁能解释一下我到底做错了什么?


我猜你正在尝试在非arm64v8平台上构建docker镜像。对于其余的答案,我会假设这一点。

提供的解决方案将特定于 Ubuntu 发行版(主机),但我想它在其他 Linux 发行版上应该类似。

解决方案1[在 Ubuntu 18.04 上工作]

From https://github.com/docker/for-linux/issues/56我们可以看到 Debian(以及 Ubuntu?)的软件包中当前存在错误。

sudo apt-get install qemu-user-static

git clone https://github.com/computermouth/qemu-static-conf.git
sudo mkdir -p /lib/binfmt.d
sudo cp qemu-static-conf/*.conf /lib/binfmt.d/
sudo systemctl restart systemd-binfmt.service

这将删除qemu-user-binfmt解决方案 2 中的方法。但是,在该包中,提供的配置文件不在文件夹中,并且配置错误,无法使用systemd-binfmt.

此外,我们从 git 存储库获取配置文件,并将它们放在 systemd-binfmt 查找的文件夹中:/lib/binfmt.d/ (not /var/lib/binfmts/由 qemu-user-static 安装)

然后检查状态:

systemctl status systemd-binfmt

并尝试再次编译你的docker。它应该有效!

解决方案2[目前不适用于 Ubuntu 18.04]

以前是手动配置过程,但现在通过 apt 包支持:

sudo apt-get install qemu-user-binfmt

这样它将创建binfmt以下所有平台的配置/proc/sys/fs/binfmt_misc/qemu-*。当你的系统检测到可执行文件是针对arm的时,它会调用qemu而不是尝试直接执行。

这是更详细解释的链接:https://ownyourbits.com/2018/06/13/transparently-running-binaries-from-any-architecture-in-linux-with-qemu-and-binfmt_misc/ or https://ownyourbits.com/2018/06/27/running-and-building-arm-docker-containers-in-x86/

要理解它是如何工作的,最好阅读以下段落:

内核识别ARM ELF魔法,并使用解释器/usr/bin/qemu-arm-static,这是正确的 QEMU 二进制文件 建筑学。 0x7F 'ELF' 的十六进制是7f 45 4c 46, 所以我们可以 看看魔法和面具如何一起工作,考虑到 ELF头的结构

typedef struct {
    unsigned char e_ident[EI_NIDENT];   /* 0x7F 'ELF' four byte ELF magic for any architecture */
    uint16_t e_type;
    uint16_t e_machine;                 /* architecture code, 40=0x28 in the case of ARM */
    uint32_t e_version;
    ElfN_Addr e_entry;
    ElfN_Off e_phoff;
    ElfN_Off e_shoff;
    uint32_t e_flags;
    uint16_t e_ehsize;
    uint16_t e_phentsize;
    uint16_t e_phnum;
    uint16_t e_shentsize;
    uint16_t e_shnum;
    uint16_t e_shstrndx;
} ElfN_Ehdr;

请注意,binfmt配置由 docker 共享,因此它将尝试获取/usr/bin/qemu-arm-static容器内。这就是您仍然需要复制 /usr/bin/qemu-arm-static 的原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

standard_init_linux.go:211:exec 用户进程导致 alpine linux 和 python“没有这样的文件或目录” 的相关文章

  • xlsxwriter 错误:AttributeError:“工作簿”对象没有属性“add_format”

    我正在使用 xlsxwriter 进行一些简单的条件格式化 但是当我运行下面的代码时出现此错误 AttributeError Workbook object has no attribute add format 我已经更新了 xlsxwr
  • 反转 Python 整数的位

    给定一个十进制整数 例如 65 如何反转 Python 中的底层位 即以下操作 65 01000001 10000010 130 看来这个任务可以分为三步 将十进制整数转换为二进制表示形式 反转位 转换回十进制 第 2 步和第 3 步看起来
  • Python 的 pack("

    我不太了解 python 但从文档中可以看出代码 str AAAA str pack
  • 对 numpy 数组的每 n 个元素求平均值

    我有一个 numpy 数组 我想创建一个新数组 它是每个连续三元组元素的平均值 因此 新数组的大小将是原始数组的三分之一 举个例子 np array 1 2 3 1 2 3 1 2 3 应该返回数组 np array 2 2 2 谁能建议一
  • 在 opencv 中一次性将旋转和平移结合起来

    我有一段用于旋转和平移图像的代码 Point2f pt 0 in rows double angle atan trans c trans b 180 M PI Mat r getRotationMatrix2D pt angle 1 0
  • Django 视图集没有属性“get_extra_actions”

    我第一次使用 Django 我正在尝试构建一个 API 我正在遵循一些教程和示例 它工作正常 但在安装所有要求和项目后 我现在正在 Raspberry Pi 中运行该项目失败并出现以下错误 Performing system checks
  • 读取大文件并制作字典

    我有一个大文件 我需要读取它并从中制作字典 我希望这一切能够尽可能快 然而我的Python代码太慢了 这是一个显示问题的最小示例 首先制作一些假数据 paste lt seq 20000000 lt seq 2 20000001 gt la
  • xlwt 可以在单元格中创建一个包含标题和链接变量的超链接吗?

    例如 如何更改以下行 使 test 为变量 T 且 http google com http google com 是变量L ws write 0 0 xlwt Formula test HYPERLINK http google com
  • 组内条件计数

    我想在之后进行条件计数groupby 例如 按列的值分组A 然后计算每组中值出现的频率5出现在列中B 如果我整个过程都这样做DataFrame 只是len df df B 5 所以我希望我能做到df groupby A df B 5 siz
  • 需要Python字长函数示例

    我的家庭作业有点困难 我本来应该编写一个函数 limitWords 将输入限制为 20 个单词 如果输入超过 20 个单词 则将输入截断为仅 20 个单词 我使用 len text split 作为计算单词的方法 因此 20 个或更少的部分
  • [matplotlib]:理解“set_ydata”方法

    我试图了解如何使用 set ydata 方法 我在 matplotlib 网页上找到了很多示例 但我只找到了 set ydata 被 淹没 在大型且难以理解的代码中的代码 我想要一个简短且易于理解的代码来帮助我理解 set ydata 的工
  • 字段“id”期望一个数字,但得到“natsu”django

    我想创建一个 user posts 视图 其中包含与特定用户相关的所有帖子 假设有用户 Natsu 撰写的博客帖子 那么登录用户 Testuser 将能够查看所有帖子由该用户发布 即用户 Natsu 的所有帖子 blog models py
  • 获取SVG绘图的边界框

    我想提取 SVG 绘图的边界框 由于 Python 已经在系统上可用并且还用于执行其他任务 因此我不想使用 JavaScript 或任何其他语言 我的理解是是否可以计算单个元素的边界框 但我不知道如何计算 整个绘图的边界框只是所有元素的最小
  • Django Rest框架Json解析

    我想解析传入的POSTdjangoviews py 文件中的数据 发布数据 number 17386372 data banana apple grapes 这是我尝试读取上述传入数据的方法request views py class Fr
  • Django 自定义文件存储系统

    我有一个自定义存储 import os from django core files storage import Storage class AlwaysOverwriteFileSystemStorage Storage def get
  • 2D 矩阵上的 Numpy where()

    我有一个像这样的矩阵 t np array 1 2 3 foo 2 3 4 bar 5 6 7 hello 8 9 1 bar 我想获取行包含字符串 bar 的索引 在一维数组中 rows np where t bar 应该给我索引 0 3
  • 将连续行与相同的列值合并

    我有一个看起来像这样的东西 我该如何处理 0 d 0 The DT 1 Skoll ORGANIZATION 2 Foundation ORGANIZATION 3 4 based VBN 5 in IN 6 Silicon LOCATIO
  • 无法使用python和beautifulsoup抓取网页中的某些href

    我目前正在使用 Python 3 4 和 bs4 爬取网页 以收集塞尔维亚在里约 2016 年的比赛结果 所以网址here http rio2016 fivb com en volleyball women teams srb serbia
  • 如果出现重复,则主键取正值

    我有一个数据框df Key1 Key2 Value K11 K21 V1 K11 K21 V1 K13 K23 V2 K13 K23 V2 现在 例如对于相同的键 K11 K21 组合 我们有 2 个值 一负一正 如何从此 df 中仅获取正
  • 与仅调用依赖函数/类相比,在 FastAPI 中使用 Depends 有哪些优点?

    FastAPI 提供了way https fastapi tiangolo com tutorial dependencies 通过其自己的依赖关系解析机制来管理依赖关系 例如数据库连接 它类似于一个pytest夹具系统 简而言之 您在函数

随机推荐

  • Django admin 保存对象的副本而不是覆盖

    我有一个名为 OneToOneFiled 的模型alg id 当我进入管理面板并更改现有对象中的此字段时 就会创建一个新对象 但我想用不同的对象覆盖相同的对象alg id 当我更改其他简单文本字段时 一切正常 如果我改变alg id对于一个
  • StringIndexOutOfBoundsException 字符串索引超出范围:0 [重复]

    这个问题在这里已经有答案了 我正在编写一个程序 打开一个文本文件并检查注释 然后它解析评论以检查某些单词 我遇到的错误是以下 while 循环 该循环检查当前行是否 如果存在非反斜杠字符 则以空格或 以外的任何字符开头 然后 while 循
  • KarateException 路径中缺少属性 - JSON

    我试图匹配响应中的特定变量并尝试如下 但我收到错误消息KarateException Missing Property in path Odata 我的问题是 我们如何修改才能避免出现此错误 Feature And match email
  • 如何使用 c#.net 4.0 在最大定义的并行线程中运行任务

    我有 1 个方法 我想在 10 个不同的并行线程中运行 所有方法都是独立的 彼此之间没有依赖关系 我的问题是 如果我有 100 个项目要处理并且想一次处理 10 个 那么如何做一次运行 10 次 我创建了一个示例代码 我正在使用Parall
  • URL 重写 - 初学者指南

    我需要学习如何对网站进行 URL 重写以获得漂亮的 URL 通过阅读 50 篇教程 我对它的工作原理有了一个大概的了解 但他们都没有真正发挥作用 也从未设法使其正常工作 您知道有哪些适合我入门的教程吗 这是我想如何使用它的示例 这是基本链接
  • 如何使用Dompdf转换多个html文件?

    我在做什么 我正在使用一个名为的 PHP 库Dompdf将我的 HTML 文件转换为 PDF 我已成功将单个 HTML 文件转换为 PDF 我正在尝试做的事情 现在我有多个报告 我想将它们转换为 PDF 文件 我在做什么 我在这里有一个示例
  • 为什么扫描仪会跳过用户的输入

    我有一个小任务 允许用户输入任何国家的地区及其邻居 我做了所有的事情 只是有一个小问题 那就是当我运行我的代码时 程序要求用户输入区域的数量 如果用户输入 13 或数字大于 10 系统会认为该数字就像两个输入 它不会允许用户为第二个问题输入
  • iOS 11 Safari 引导模式文本区域位于光标之外

    在 iOS 11 safari 中 输入文本框光标位于输入文本框之外 我们不明白为什么会出现这个问题 正如您所看到的 我的焦点文本框是电子邮件文本输入 但我的光标位于其中 这只发生在 iOS 11 Safari 上 我通过添加解决了这个问题
  • 找不到 pandas==1.3.1 的匹配发行版

    我目前拥有版本 1 1 5 的 Pandas 我正在尝试使用以下命令安装最新版本的 Pandas pip install pandas 1 3 1 但是 我收到如下错误 ERROR Could not find a version that
  • 无法在 Eclipse 中加载 Maven 项目中的 Widgetsets

    我使用 maven 创建了一个 vaadin Web 应用程序eclipse 特别是我使用了原型vaadin archetype touchkit如中所述瓦丁之书 20 3 4 在没有对默认生成的代码进行任何更改的情况下 我已经使用带有目标
  • 如何集成 Expression> 来清理我的 Linq-to-Entity 查询?

    我想使用Expression
  • 打印时 pyodbc 弃用警告

    当我跑步时print cursor fetchone pyodbc 包 我有以下警告 main py 33 DeprecationWarning PyUnicode FromUnicode NULL size is deprecated u
  • libxml/tree.h 没有这样的文件或目录

    我收到以下错误 libxml tree h 没有这样的文件或目录 我已经添加了libxml2 dylib到我的项目 但是我遇到了这种麻烦 请帮我 遵循指示here 在 设置项目文件 下 设置您的项目文件 您需要将 libxml2 dylib
  • .htaccess 重定向域别名'

    我有一个客户 它有大量的域别名 并希望它们全部重定向到网站上的一个主域 他们还想知道哪个域别名正在执行重定向 我已经把那部分写下来了 但我想将代码优化到最好 最正确的方式 并消除我必须编写的代码量 我想知道是否有办法将所使用的域别名传递给
  • qt.qpa.xcb:无法连接显示 qt.qpa.plugin:无法加载 Qt 平台插件“xcb”

    运行下面的代码后 我收到以下错误 Got keys from plugin meta data xcb QFactoryLoader QFactoryLoader checking directory path usr bin platfo
  • Windows 8 商店应用程序是否支持 MS Access 数据库?

    我刚刚开始学习 Windows 8 应用商店应用程序编程 并遇到了一个问题 Windows 8 应用商店应用程序是否支持 MS Access 数据库 如果不是那么它支持哪些数据库 根据您对支持的定义 您可以创建一个 WCF 服务 允许您从
  • 如何获取当前正在执行的 javascript 代码的文件路径

    我正在尝试做类似 C 的事情 include filename c 或PHPinclude dirname FILE filename php 但在 JavaScript 中 我知道如果我可以获得加载 js 文件的 URL 例如标签的 sr
  • 如何使用 .NET 创建具有特定扩展名的临时文件?

    我需要生成一个扩展名为 csv 的唯一临时文件 我现在做的是 string filepath System IO Path GetTempFileName Replace tmp csv 但是 这并不能保证我的 csv 文件是唯一的 我知道
  • 定义我自己的命令

    我正在尝试在 MacVim 中定义自己的命令 将 c 语句或语句范围转换为注释 所以我把它放在我的 vimrc 中 command range Com
  • standard_init_linux.go:211:exec 用户进程导致 alpine linux 和 python“没有这样的文件或目录”

    我有一个目录 其中包含 docker 文件 attack py 和requirements txt 使用它 我创建了以下 dockerfile FROM arm64v8 python 3 7 alpine COPY qemu arm sta