node.bcrypt.js
node.bcrypt.js copied to clipboard
Application Crashing When Using bcrypt's compare function on node docker image
Title: Application Crash with bcrypt's compare function on node docker image
Description: I ran into an issue where my application crashes when using the compare function from bcrypt on the node Docker image. Here are the details:
Steps to Reproduce: Use the node Docker image in a Node.js application. Utilize bcrypt's compare function to compare hashed passwords. Observe the application crash upon invoking the compare function.
Expected Behavior: The application should successfully execute the compare function without crashing.
Actual Behavior: The application crashes when calling the compare function without throwing any specific error.
Additional Details:
Dockerfile:
FROM node
WORKDIR /home/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 4000
CMD ["npm", "run", `"dev"]
and this is my docker-compose.yml:
version: '3'
networks:
local:
services:
mysql:
container_name: mysqldb
image: mysql:8
environment:
MYSQL_DATABASE:
MYSQL_USER:
MYSQL_PASSWORD:
MYSQL_ROOT_PASSWORD:
networks:
- local
ports:
- '3306:3306'
app:
depends_on:
- mysql
container_name: blog-api
build:
context: .
dockerfile: Dockerfile
environment:
DB_HOST:
DB_USERNAME:
DB_PASSWORD:
DB_DATABASE:
volumes:
- ./:/home/app
ports:
- '4000:4000'
networks:
- local
I read on this issue it could be a library mismatch, but I tried using a .dockerignore file and nothing changed.
Any suggestion on what I could do?
same problem here node:20-alpine, any workaround please?
use 5.1.0
same problem here node:20-alpine, any workaround please?
what I did to fix this problem was:
- changed docker-compose, from version '3' to version: '3.5'
- Dockerfile first COPY step to COPY ./package.json .
- added a volume for node_modules, so following my own post it would be:
volumes: - ./:/home/app - /home/app/node_modules
instead of just:
volumes: - ./:/home/app
and ran docker-compose build before docker-compose up
same problem with hashSync() when built on node:20-alpine
same problem with
hashSync()when built on node:20-alpine
look at my answer above your comment and see if anything I changed in my compose file helps you.
same problem with
hashSync()when built on node:20-alpinelook at my answer above your comment and see if anything I changed in my compose file helps you.
I understand the problem, there is some library mismatch on alpine images. One solutions is using hosts node_modules, but that its is not viable solution when you dont build the project on host but inside of another container running alpine, speaking of some CI/CD stuff etc.
In my case i used version 5.10, which is fine.
I had the same issue, installing version 5.1.0 fixed it.
if anyone still having this issue, using docker image node:20.10.0 and bcrypt version 5.1.0 fixed the issue
thanks
use bcryptjs library instead of bcrypt
use
bcryptjslibrary instead ofbcrypt
perfectly working . thanks so much