0

我的应用程序可以在我的本地机器(Windows)上运行,但是当我部署 docker 映像(到 heroku)时,我在 Argon2 中遇到了这个错误:

Starting process with command `node dist/index.js`      
2022-02-10T20:44:37.701683+00:00 app[web.1]: node:internal/modules/cjs/loader:1151
2022-02-10T20:44:37.701705+00:00 app[web.1]: return process.dlopen(module, path.toNamespacedPath(filename));
2022-02-10T20:44:37.701705+00:00 app[web.1]: ^
2022-02-10T20:44:37.701706+00:00 app[web.1]:
2022-02-10T20:44:37.701706+00:00 app[web.1]: Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /user/src/app/node_modules/argon2/lib/binding/napi-v3/argon2.node)
2022-02-10T20:44:37.701707+00:00 app[web.1]: at Object.Module._extensions..node (node:internal/modules/cjs/loader:1151:18)
2022-02-10T20:44:37.701707+00:00 app[web.1]: at Module.load (node:internal/modules/cjs/loader:972:32)
2022-02-10T20:44:37.701707+00:00 app[web.1]: at Function.Module._load (node:internal/modules/cjs/loader:813:14)
2022-02-10T20:44:37.701708+00:00 app[web.1]: at Module.require (node:internal/modules/cjs/loader:996:19)2022-02-10T20:44:37.701708+00:00 app[web.1]: at require (node:internal/modules/cjs/helpers:92:18)       
2022-02-10T20:44:37.701708+00:00 app[web.1]: at Object.<anonymous> (/user/src/app/node_modules/argon2/argon2.js:9:56)
2022-02-10T20:44:37.701709+00:00 app[web.1]: at Module._compile (node:internal/modules/cjs/loader:1092:14)
2022-02-10T20:44:37.701709+00:00 app[web.1]: at Object.Module._extensions..js (node:internal/modules/cjs/loader:1121:10)
2022-02-10T20:44:37.701709+00:00 app[web.1]: at Module.load (node:internal/modules/cjs/loader:972:32)   
2022-02-10T20:44:37.701709+00:00 app[web.1]: at Function.Module._load (node:internal/modules/cjs/loader:813:14) {
2022-02-10T20:44:37.701710+00:00 app[web.1]: code: 'ERR_DLOPEN_FAILED'
2022-02-10T20:44:37.701710+00:00 app[web.1]: }
2022-02-10T20:44:37.894114+00:00 heroku[web.1]: Process exited with status 1
2022-02-10T20:44:38.005793+00:00 heroku[web.1]: State changed from starting to crashed

我的 Dockerfile:

FROM node:15

WORKDIR /user/src/app

COPY package*.json ./

RUN npm install

COPY . .

RUN npm run build

ENV NODE_ENV production

EXPOSE 8080
CMD ["node", "dist/index.js"]
USER node

.dockerignore

node_modules
npm-debug.log

我从查找问题中发现 argon2 没有正确安装在图像中或类似的东西中,但我排除了node_modules文件夹,所以我假设图像得到全新安装

4

1 回答 1

0

更改FROM node:15FROM node:latest我解决了它。

我一开始使用 node:15 因为那是我在本地开发中的 node 版本。看起来像 node:latest 有 glibc_2.25

于 2022-02-11T15:56:22.483 回答