컨테이너 restarting 상태 해결하기

Arin·2025년 12월 3일

문제

morgan 라이브러리를 추가하고 main에 반영했더니 깃헙 Action에서 컨테이너가 unhealthy해서 배포가 실패했다고 떴다.

ssh 접속하여 docker ps로 확인해보니 컨테이너 상태가 Restarting으로 표시되었다. 원래는 healthy로 표시되어야 한다.

원인

내가 작성한 docker-compose.yml를 보면, 사용자가 수동으로 stop하기 전까지 컨테이너를 재시작하라는 명령어 때문에 계속 restart 상태였던 것같다.

자세한 로그를 살펴보기 위해 sudo docker logs myapp로 로그를 출력해보니 morgan 모듈을 찾지 못했다는 에러가 떴다.

내가 코드에서 morgan을 사용했고, 서버는 해당 모듈을 node_modules에서 찾으려 했는데 devDependencies로만 설치하고 production 환경에서는 설치가 안되어서 서버가 찾지 못한 것이다.
이 에러 때문에 프로세스가 종료되고 컨테이너가 계속 restart 하려고 했던 것이다.

해결

dev용 모듈과 production용 모듈을 구분하여 설치한다.

pnpm install express morgan
pnpm install @types/morgan --save-dev

만약 해당 모듈을 사용하는 코드를 배포 하고싶다면, 첫 번째 명령어로 설치해야한다.
기존에는 두 번째 명령어만 작성해서 인식을 못했던 것이다.

profile
헤맨만큼 내 땅

0개의 댓글