Docker build 시 bcrypt 에러 해결 방법 Error: Error loading shared library...

2023. 10. 29. 03:19Docker

배경

bcrypt  bcryptjs와 다르게 C++으로 라이브러리가 만들어져있다.

bcrypt는 node에 기본적인 모듈을 사용한다.

docker build시 node:xx-alpine 를 사용한다.


원인

bcrypt가 node에서 C++로 구성된 제공하는 모듈을 사용하는데 이 때 node의 alpine 버전을 설치하면

사용되는 Dependencies가 없어서 에러가 나타난다.

 


해결 방법

dockerfile을 수정 한다

  1. yarn install 명령어 이후 한번 더 bcrypt를 설치한다. 
  2. multistage-build를 사용하여 용량을 줄이고 빌드를 진행한다.

Docker multistage-build 설명 
multistage-build는 빌드에 사용하는 Dependencies만 가져오기 때문에 용량을 줄일수 있다.

수정 이전 dockerfile

//이전 Dockerfile
FROM node:18-alpine

WORKDIR /app
COPY . .

RUN yarn build

ENV HOST 0.0.0.0
EXPOSE 3000

CMD ["yarn", "start"]

 


 수정 이후 dockerfile

//수정된 dockerfile
FROM node:18-alpine

WORKDIR /app
COPY . .

RUN yarn build
RUN yarn add bcrypt 

FROM node:18-alpine
WORKDIR /app
COPY --from=0 /app /app

ENV HOST 0.0.0.0
EXPOSE 3000

CMD ["yarn", "start"]
728x90
반응형

'Docker' 카테고리의 다른 글

docker-compose 사용 방법  (1) 2023.12.31
Dockerfile 만들기 (.dockerignore)  (0) 2021.08.22
Docker 볼륨 마운트  (0) 2020.11.18