작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
작성
·
416
답변 3
0
0
안녕하세요! 영록님!
현재까지 내용으로 보았을 때, 크게 2가지정도가 의심이 됩니다.
docker volumes의 설정을 체크해 보시면 좋을 것 같아요
모든게 완벽한데 안되는 경우, 간혹 build상의 문제인 경우도 있습니다.
이럴 때는 아예 새롭게 build를 다시 해 보시는게 좋은데, 단순 build를 하시는게 아니라, 파일명을 모두 변경하여 시도해 보세요!
index.js 파일을 qqq.js로 변경해 주시고, Dockerfile 에서 실행 명령어는 nodemon qqq.js 로 변경하시고 다시 새롭게 build해 보세요!
0
안녕하세요! 영록님!
다음 순서를 하나씩 체크해 주세요!
1.로컬파일수정 ==> 2.수정된파일이 도커안에 들어감(volumes 설정) ==> 3.도커안에 들어가서 cat명령으로 수정된 파일이 도커안에 들어왔는지 확인가능 ==> 4.수정된파일을 감지해서 자동으로 리프레시해줌(nodemon으로 실행중인지 확인)
위 순서에서 어느 부분에서 막혔는지 하나씩 검증을 해보셔야 할 것 같아요! 절대 한번에 하려고 하지 마시고 어느단계가 안되는지 확인후 해당부분에 오타 등이 있는지 체크가 필요할 것 같아요!
질문 내용을 보기엔 4번을 체크해 보셔야 할 것 같습니다!
네 3번까지는 확인했는데, 4번이 안됩니다.
Local에서 변경한 코드가 docker내 이미지에 반영은 됬는데, postman으로 접근이 안되고, local에도 변경이력이 안뜹니다.
다만, stop후 새로운 image를 build 하지 않아도, 다시 up해야지만 postman에서 변경된 코드에 대해 접근이 됩니다.
네! 영록님! 4. nodemon으로 실행중이 아니신 것 같아요! Dockerfile 에서 nodemon index.js 와 같이 실행중인지 확인해 보셔요!
또한, 첫 1번은 build를 다시하셔야기존에 node index.js로 등록되었던 도커 이미지가 nodemon index.js로 변경이 됩니다!
네! 영록님!
윈도우 등의 몇 몇 운영체제에서 발생할 수 있는 문제라고 하네요! 공유 감사합니다!
개발시에는 리프레시 모드를 사용하지만, 최종 서비스 배포시에는 리프레시 모드를 사용하지 않을 것이기 때문에 현재 개발 모드에서는 nodemon, chokidar 어떤 방식을 사용하셔도 무관합니다!