시놀로지 Docker에서 Node.js 구동시 Invaild ELF header 오류
bcrypt를 사용하고 윈도우 -> 리눅스(시놀로지 Docker)로 옮기고 실행해보니 이런 오류가 난다. Invaild ELF header 대충 원리를 찾아보니, bcrypt는 C++ 파일들로 (bcrypt 뿐만 아니라, 일부 다른 모듈도) 구동이 된다고 한다. 따라서 빌드를 하게 되는데, npm 같은 패키지 매니저는 빌드를 할 때 해당 OS를 따라서 빌드한다고 한다. 문제는 윈도우와 리눅스의 환경이 완전히 다르다 보니 이런 오류가 생기는 듯하다. Heroku에서도 이런 케이스가 있는듯했다. 그럴 경우에는 docker node.js 이미지에 붙어있는 npm, yarn을 쓰자. 참고로... 컨테이너에 있는 node 파일 경로는 (공식 이미지 설명 기준) /home/node/app/~ 가 파일 경로이다. 만..
2020. 3. 21. 13:39