错误:/src/node_modules/isolated-vm/out/isolated_vm.node:无效的 ELF 标头

问题描述 投票:0回答:1

我有一个非常简单的 Dockerfile

FROM emscripten/emsdk

COPY . .
RUN npm install --omit=dev

RUN node index.js

以下属性

node --version
v16.20.0
uname -a
Linux buildkitsandbox 6.4.16-linuxkit #1 SMP PREEMPT Wed Oct 25 16:32:24 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

我想用

isolated-vm
,我写了这个脚本

const fs = require("fs");
const ivm = require("isolated-vm");
const isolate = new ivm.Isolate({ memoryLimit: 16 });

const context = isolate.createContextSync();

const jail = context.global;
jail.setSync("global", jail.derefInto());
jail.setSync("log", function (...args) {
  console.log(...args);
});

const hostile = isolate.compileScriptSync("empty");

hostile.run(context).catch((err) => console.error(err));

我的package.json

{
  "private": true,
  "dependencies": {
    "isolated-vm": "^4.6.0"
  }
}

当我使用命令构建图像时

docker buildx build --platform linux/amd64 --progress=plain --tag compiler .

我收到错误

#11 [7/7] RUN node index.js
#11 0.361 node:internal/modules/cjs/loader:1280
#11 0.361   return process.dlopen(module, path.toNamespacedPath(filename));
#11 0.361                  ^
#11 0.361 
#11 0.361 Error: /src/node_modules/isolated-vm/out/isolated_vm.node: invalid ELF header
#11 0.361     at Object.Module._extensions..node (node:internal/modules/cjs/loader:1280:18)
#11 0.361     at Module.load (node:internal/modules/cjs/loader:1074:32)
#11 0.361     at Function.Module._load (node:internal/modules/cjs/loader:909:12)
#11 0.361     at Module.require (node:internal/modules/cjs/loader:1098:19)
#11 0.361     at require (node:internal/modules/cjs/helpers:108:18)
#11 0.361     at Object.<anonymous> (/src/node_modules/isolated-vm/isolated-vm.js:1:18)
#11 0.361     at Module._compile (node:internal/modules/cjs/loader:1196:14)
#11 0.361     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1250:10)
#11 0.361     at Module.load (node:internal/modules/cjs/loader:1074:32)
#11 0.361     at Function.Module._load (node:internal/modules/cjs/loader:909:12) {
#11 0.361   code: 'ERR_DLOPEN_FAILED'
#11 0.361 }
#11 ERROR: process "/bin/sh -c node index.js" did not complete successfully: exit code: 1
------
 > [7/7] RUN node index.js:
0.361     at Function.Module._load (node:internal/modules/cjs/loader:909:12)
0.361     at Module.require (node:internal/modules/cjs/loader:1098:19)
0.361     at require (node:internal/modules/cjs/helpers:108:18)
0.361     at Object.<anonymous> (/src/node_modules/isolated-vm/isolated-vm.js:1:18)
0.361     at Module._compile (node:internal/modules/cjs/loader:1196:14)
0.361     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1250:10)
0.361     at Module.load (node:internal/modules/cjs/loader:1074:32)
0.361     at Function.Module._load (node:internal/modules/cjs/loader:909:12) {
0.361   code: 'ERR_DLOPEN_FAILED'
0.361 }

这是因为我的 Node.js 安装太旧了吗?

javascript node.js docker emscripten emsdk
1个回答
0
投票

问题是:我在同一个文件夹中有node_modules,从文件系统中删除它是有效的。

© www.soinside.com 2019 - 2024. All rights reserved.