Estoy tratando de usar la función hash del paquete de JavaScript argon2 , pero recibo el siguiente error:
Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /app/node_modules/argon2/lib/binding/napi-v3/argon2.node) at Object.Module._extensions..node (internal/modules/cjs/loader.js:1144:18) at Module.load (internal/modules/cjs/loader.js:950:32) at Function.Module._load (internal/modules/cjs/loader.js:790:12) at Module.require (internal/modules/cjs/loader.js:974:19) at require (internal/modules/cjs/helpers.js:93:18) at Object.<anonymous> (/app/node_modules/argon2/argon2.js:9:56) at Module._compile (internal/modules/cjs/loader.js:1085:14) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10) at Module.load (internal/modules/cjs/loader.js:950:32) at Function.Module._load (internal/modules/cjs/loader.js:790:12) { code: 'ERR_DLOPEN_FAILED' } [nodemon] app crashed - waiting for file changes before starting...Aquí está mi código que está fallando:
import { hash } from "argon2"; (async () { const hashedPassword = await hash(password); })(); Encontré esta discusión en askubuntu.com , pero los pasos ilustrados allí realmente no se aplican a mí. El error podría provenir del hecho de que estoy usando docker ...
Aquí está el dockerfile para mi servidor (donde vive el código de error):
FROM node:14 WORKDIR /app COPY package*.json . RUN npm i COPY . . EXPOSE 80 CMD ["npm", "run", "dev"] Aquí está el archivo .dockerignore :
/node_modules /Dockerfile Y aquí está mi archivo docker-compose.yaml (el servicio 'servidor' es el que nos preocupa):
version: "3.8" services: db: image: mysql ports: - 3308:3306 environment: *** redis: image: redis command: "redis-server --requirepass secret" server: build: ./server ports: - "4000:80" volumes: - ./server:/app - /app/node_modules - /app/dist environment: ***No he mostrado mis variables de entorno por razones obvias.
Gracias por cualquier ayuda y comentarios.