React ENOSPC 에러

wooseok-Jang·2022년 5월 21일
0
post-thumbnail

시놀로지 NAS 에서 docker환경을 실행 할 수 있다.

React 의 development server는 변경되는 파일을 알아서 확인하고 다시 디버그 빌드 해 주는 기능이 있다

이 때 linux 의 inotify 를 사용하게 되는데 운영체제 상에서 inotify 가능한 최대 숫자가 정해져 있다.

synology nas 자체의 다른 프로세스들도 inotify를 사용하기때문에 생각보다 limit이 빡빡하다

따라서 다음과 같은 에러를 볼 수 있게 된다.

Error: ENOSPC: System limit for number of file watchers reaced

이 에러는 linux 의 inotify limit 수를 늘려주면 해결 된다.

따라서 etc/system.ctl 파일에 다음과 같이 입력하고

fs.inotify.max_user_watches = 1048576

(limit 수는 마음껏 바꿀 수 있다. synology 기본값은 8192)

sysctl -p 

명령어로 적용할 수 있다.

하지만 docker 컨테이너 내부에서 해당 파일을 수정하고 적용 하려고 하면 다음과 같은 에러와 함께 적용되지 않는다

sysctl: setting key "fs.inotify.max_user_watches", ignoring: Read-only file system

docker는 host운영체제에서 구동되는 완전한 가상화가 아니기 때문에 이러한 운영체제의 설정은 docker 컨테이너를 실행하고 있는 호스트 운영체제 에서 실행 해야한다.

이를 위해 nas 호스트 운영체제의 터미널을 실행해야 한다.
synology nas 에서는 기본적으로 ssh 접속을 거부하고 있으므로 이를 활성화 시켜줘야한다.

dsm 의 제어판 -> 터미널 및 snmp 메뉴에서 ssh를 활성화 하기만 하면 된다.

활성화가 되었다면 ssh로 접속후 su 권한을 가져온 뒤 위의 과정을 실행하면 된다.

profile
리눅스 컨테이너 기술을 좋아합니다.

0개의 댓글