node-app_1 | (node:1) UnhandledPromiseRejectionWarning: Error: The client is closed
node-app_1 | at Commander._RedisClient_sendCommand (/usr/src/app/node_modules/@node-redis/client/dist/lib/client/index.js:393:31)
node-app_1 | at Commander.commandsExecutor (/usr/src/app/node_modules/@node-redis/client/dist/lib/client/index.js:160:154)
node-app_1 | at Commander.BaseClass.(anonymous function) [as set] (/usr/src/app/node_modules/@node-redis/client/dist/lib/commander.js:8:29)
node-app_1 | at Object.<anonymous> (/usr/src/app/index.js:15:8)
node-app_1 | at Module._compile (internal/modules/cjs/loader.js:778:30)
node-app_1 | at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
node-app_1 | at Module.load (internal/modules/cjs/loader.js:653:32)
node-app_1 | at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
node-app_1 | at Function.Module._load (internal/modules/cjs/loader.js:585:3)
node-app_1 | at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
node-app_1 | (node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
node-app_1 | (node:1) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
지금이면 해결하셨을 것 같은데,
혹시 아직 해결하지 못하셨을 까봐 답변을 남깁니다.
아래 방법으로 해결이 되지 않거나 혹은 다른 에러 가 발생할 수 있습니다.
해당 하는 경우에는 키워드 찾으셔서 구글링 하시면 99 % 로 게시글이 나올 것이며, 나오지 않는 경우는 stackoverflow 에 OS, 사용하는 버전, git 링크 등을 첨부하셔서 질문 하시면 답변 돌아올 것 같습니다.
발견한 문제
Cannot start service node-app: Ports ar not availbale : listen tcp ~ 이 뒤는 잘려있네요...
몇 번 포트를 사용하셨는지 모르겠지만 강의처럼 8080 포트를 사용하셨다면 에러가 뜰 가능성이 있는데요.
그 이유는 MySQL 혹은 PostgreSQL 이 8080 포트를 쓰는 것으로 알고 있습니다.
혹은 5000 포트 또한 자주 사용되는 것으로 알고 있습니다.
강의 도중에 나왔던 설명안 대로 포트 매핑 을 49160:8000 으로 진행하면 해결 되실 수도 있을 것 같네요.
안된다면 다른 포트 4000, 3000 찾아서 사용하시면 될 것 같고 로컬(내 컴퓨터) 포트 사용 현황 은 사용 중인 TCP 포트 보기 로 구글링 하면 나올 듯 합니다.
발견한 문제
Cannot find module /usr/src/app/server.js
말 그대로 해당 파일이 없을 때, 뜨는 문제입니다.
에러가 발생하면 말 그대로 해당 지점을 확인 해봐야 하는데, 저도 docker 는 낯설어서 에러가 뜬 상태로 실행을 유지 / 에러가 뜨며 실행 중단 인지 구분이 되지 않습니다.
docker ps 로 컨테이너 리스트 확인하고 실행 중이라면 아이디 확인해서
docker exec -it 컨테이너 아이디 sh 으로 쉘 열어 주신 다음에
ls 입력해주세요.
예상 가능한 경우의 수는 2 가지 일 것 같은데,
1. home 을 비롯한 수많은 디랙토리가 출력되는 경우
2. package.json 과 같은 개발자가 작성한 파일만 출력되는 경우
1번의 경우는 dockerfile, docker-compose 에 오타가 있는 것이 아닐까 생각합니다.
저도 똑같이 작성하였으니 레포 남겨두겠습니다.
unchaptered/22-05-docker-express: docker test project, from 2022-05-01 (github.com)
2번의 경우처럼, 제대로 작성하였는데도 에러가 뜨는 경우는 잘 모르겠습니다.
그런 경우에는 따로 OS, Docker 버전, Github Repo 첨부하셔서 질문 별도로 작성하시면 강사님께서 도와주시시 않을까... 생각해봅니다.