docker 容器中的 libnode-dev 安装

libnode-dev installation within docker container

我正在尝试 运行 一个 node.js 应用程序。

可以运行没问题直接上我的raspbian buster

在同一个 docker 容器 运行 中 raspberry pi,我没有这样的运气。

Docker 文件:

FROM balenalib/raspberry-pi2-debian-node:10-stretch-run

RUN sudo apt-get update
RUN sudo apt-get -y install g++ python make git

WORKDIR /usr/src/app

COPY package.json package.json

RUN JOBS=MAX npm install --production
COPY . ./

CMD ["npm", "start"]

但是当我 运行 在 docker 容器中使用相同的 node.js 代码时,我收到 libnode.so.64 错误。

pi@raspberrypi:~/rpi-lora-sensorified/data $ docker logs rpi-lora-sensorified_data_1

> resin-websocket@1.0.1 start /usr/src/app
> node index.js

/usr/src/app/node_modules/bindings/bindings.js:121
        throw e;
        ^

Error: libnode.so.64: cannot open shared object file: No such file or directory

我尝试在容器中安装 libnode-dev(我得出的结论是它提供了这个库),但我得到了

E: Unable to locate package libnode-dev

是的,我已经重建了没有缓存的容器,但仍然找不到那个包。

有什么想法(甚至有些建议也会有所帮助)我应该在哪里继续看得更远?

所以我完全无法解释的解决方案是: 我试图 运行 debian stretch 上的代码,同时测试它是否适用于 debian buster。当将 docker 图像更新为 buster 时,一切都按预期工作。