微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 QEMU 操作创建的 armv7 docker 映像导致非法指令

如何解决使用 QEMU 操作创建的 armv7 docker 映像导致非法指令

我在 Github 上构建了我的 docker 镜像,一次用于三种架构。对于后端,我不得不通过箍,而不是使用 node:latest,使用 ubuntu:latest 以便我可以使用 glibc >= 2.29。但是,似乎启动构建该文件时安装的任何东西 - 所以 npm 或 nodejs - 将导致图像在 armv7 上崩溃,同时在 x86_64 上工作:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <corners
        android:topLefTradius="100dp"
        android:topRighTradius="0dp"
        android:bottomLefTradius="0dp"
        android:bottomrighTradius="100dp"
        />
    <gradient
        android:angle="45"
        android:centerX="35%"
        android:centerColor="#00A2A8"
        android:startColor="#E8E8E8"
        android:endColor="#000000"
        android:type="linear"
        />
    <padding
        android:left="0dp"
        android:top="0dp"
        android:right="0dp"
        android:bottom="0dp"
        />
    <size
        android:width="270dp"
        android:height="60dp"
        />
    <stroke
        android:width="3dp"
        android:color="#878787"
        />
</shape>

这是 Dockerfile:

backend_1   | #
backend_1   | # Fatal error in,line 0
backend_1   | # unreachable code
backend_1   | #
backend_1   | #
backend_1   | #
backend_1   | #FailureMessage Object: 0xbecf23ecIllegal instruction (core dumped)

以及相关操作:

FROM ubuntu:latest
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update
RUN apt install nodejs npm -y
RUN apt install ca-certificates -y
RUN update-ca-certificates --fresh
RUN npm install -g npm@latest
workdir /code
EXPOSE 4000
copY package*.json ./
RUN npm i
copY . .
VOLUME /code/media
CMD "npm" "start"

我认为问题是在使用 QEMU 操作时使用 apt?如果有解决办法,我很乐意接受。如果有一种方法可以在不使用 apt 的情况下同时获得 node/npm 和 glibc >= 2.29,那么我对这个解决方案也很满意。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。