Development/Node.js

    EMFILE: too many open files

    EMFILE: too many open files

    발단 Next.js 기반 프로젝트를 Podman으로 빌드하다가 다음 오류가 발생하였다. 해결 방법 docker-compose.yml 파일에 존재하는 Service 트리에 다음 코드를 붙여넣는다. 부족하다면, 값을 더 올리면 된다. ulimits: nofile: soft: "65536" hard: "65536" build 명령으로 빌드하는 경우, --ulimit nofile=65536:65536 를 추가한다. 이는 run 명령에도 적용 할 수 있다. 원인 커널단에서 동작하는 ulimit은 프로세스의 자원 한도를 제한한다. 해결 방법에 적혀있듯이 soft와 hard 한도가 둘 다 적혀있는데, 이는 다음과 같다. Soft Limit: 새로운 프로그램을 생성하면 기본으로 적용되는 한도. Hard Limit: S..

    시놀로지 Docker에서 Node.js 구동시 Invaild ELF header 오류

    발단 bcrypt를 사용하고 윈도우 -> 리눅스(시놀로지 Docker)로 옮기고 실행해보니 이런 오류가 난다. ~.node: Invaild ELF header 해결 방법 이럴 경우에는 docker node.js 이미지에 붙어있는 패키지 매니저를 사용해야 한다. 컨테이너 내부에 있는 node 파일 경로는, 공식 이미지 설명 기준, /home/node/app/~가 파일 경로이다. 만약 안된다면 /home/node 를 직접 확인해야한다. Synology 기준 본 솔루션은 공식 이미지 설정 방법에 따라서 설정했고, 경로에 package.json이 있는 경우를 가정하여 설명한다. Docker 창을 열고 컨테이너로 들어간다. node.js 컨테이너를 킨 후, 컨테이너 내부 메뉴로 들어간 후 터미널 버튼 누르고 생성..