Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Application Crashing When Using bcrypt's compare function on node docker image #1047

Open
rubemarjrtech opened this issue Aug 20, 2024 · 6 comments

Comments

@rubemarjrtech
Copy link

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?

@kopax
Copy link

kopax commented Sep 24, 2024

same problem here node:20-alpine, any workaround please?

@segadora
Copy link

segadora commented Oct 3, 2024

use 5.1.0

@rubemarjrtech
Copy link
Author

rubemarjrtech commented Oct 3, 2024

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

@stepskop
Copy link

same problem with hashSync() when built on node:20-alpine

@rubemarjrtech
Copy link
Author

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.

@stepskop
Copy link

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.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants