如何解决使用 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 举报,一经查实,本站将立刻删除。