[Next.js] Docker & Sharp

Bie·2024년 5월 10일

⨯ Error: 'sharp' is required to be installed in standalone mode for the image optimization to function correctly. Read more at: https://nextjs.org/docs/messages/sharp-missing-in-production

원인

next.js 버전: 14.0.4
sharp 버전: 0.33.1

자세한 원인

14.0.5 이하 버전의 next.js에서 standalone 모드를 사용할때 몇몇 dependency가 설치가 안되는 이슈가 있었다. 해당 이슈를 고친 next@canary가 나왔었고, (아마도) 14.1 이상부터는 배포에 포함되어있어서 따로 Dockerfile에 추가 조치를 해주지 않아도 문제가 없다.

해결

1. 가장 쉬운 방법

Next.js를 최신 버전으로 업데이트

2. 어떠한 사정으로 next.js 버전 업데이트를 하지 못하는 상황이라면

	RUN npm install -g --platform=linux --libc=musl sharp@0.33.0-rc.2

next.js를 업데이트 하지 않았을 때 npm ci 후 따로 sharp를 설치하니 해결이 되었다. 나의 경우 노드 이미지가 alpine이기 때문에 --libc=musl로 특정하였다.

또는 깃헙 이슈페이지를 보면 sharp를 0.32.6로 다운그레이드 했을 때 해결되었다는 사례도 있으니 참고하면 될 것 같다.

0개의 댓글