문제상황
npm 프로젝트 코드를 수정하고, 배포하기 위해 Docker로 이미지를 굽는데, 제목과 같은 에러가 떴다. 문제가 될 만한 부분을 하나씩 찾아가며 결국 해결했다. 정확한 문제 원인을 찾기 위해 삽질한 결과를 적어보려 한다.
1-1 Nginx
처음으로 들여다 본 곳은 Nginx였다. Nginx에 대해서는 잘 모르기도 하고, 결정적으로 맥북에서 brew services를 찍어봤을 때 nginx의 status가 error로 뜨며 256 코드를 내뿜고 있었다. 그래서 error code 256 관련 포스팅을 찾아가며 해결하려 했지만 어떤 방법도 통하지 않았다.(재설치 너마저...)
(스크린샷을 찍어놓은게 없어, 현재 찍은 것을 보여줘야 할 것 같다. status 에 error, 256으로 떴었다..)
결국, 싹 재부팅한 후에 정상적으로 작동했다^^ Nginx 문제는 아닌걸로..
Nginx에서도 캐싱을 할 것이라고 생각했고, Nginx 내부 캐시 저장소가 꽉찬 것이 아닐까 생각했지만, Nginx는 node_module 패키지를 저장하지 않는다..ㅎㅎ
1-2 Npm
다음으로 본 것은 노드 패키지 매니저였다. docker의 RUN npm install command에서 에러가 났기 때문에, node를 보게 되었다. node에도 cache가 있어보이는데, 이 디스크를 비우기 위해 dockerfile에 해당 명령어를 추가했다.
///Dockerfile
RUN npm cache clean --force
추가하고 다시 이미지를 빌드했지만, 같은 에러가 떴다.
1-3 Docker(해결)
결국 처음으로 돌아와서.. Docker 이미지를 굽다가 생긴 에러라는 점을 다시 재고하고, Docker 캐시 저장공간이 부족하다는 생각을 할 수 있었다. 자세히 나와있는 포스팅이 있어, 소개하려 한다.
https://velog.io/@ryu_log/%EA%B8%80%EB%98%90-No-space-left-on-device-Docker-prune
도커 캐시를 정리하니, 무려 19GB가 지워졌다 ~~~~~~~
매 이미지 빌드마다 모듈을 설치하니, 캐시일지, 컨테이너 일지, 사용하지 않는 파일의 용량이 컸던 것이다!!!!!
마무리 + 자세히 배울 것들
Nginx와 Npm의 캐시에 대해 알아봐야겠다!!