Docker build 시 bcrypt 에러 해결 방법 Error: Error loading shared library...
2023. 10. 29. 03:19ㆍDocker
배경
bcrypt bcryptjs와 다르게 C++으로 라이브러리가 만들어져있다.
bcrypt는 node에 기본적인 모듈을 사용한다.
docker build시 node:xx-alpine 를 사용한다.
원인
bcrypt가 node에서 C++로 구성된 제공하는 모듈을 사용하는데 이 때 node의 alpine 버전을 설치하면
사용되는 Dependencies가 없어서 에러가 나타난다.
해결 방법
dockerfile을 수정 한다
- yarn install 명령어 이후 한번 더 bcrypt를 설치한다.
- 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 |