인프런 커뮤니티 질문&답변

김민규님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

04-07 Docker Compose Volumes

docker-compse volumes 관련 질문드립니다!

해결된 질문

작성

·

413

0

docker-compose.yaml에 volumes 추가한 후 실행해봤지만 index를 바꿔도 refresh되지 않습니다.

그래서 반대로 container의 값을 수정하면 local의 index.js가 바뀔까 했지만 위의 사진처럼 오류가 발생합니다.

Mount되었다는 것으로 보아 연결은 된 것 같고, 제공된 파일과 강의 비교하면서 오탈자 찾아봤지만 모두 같습니다.

이를 해결하기 위해 어떻게 접근해야할지 궁금합니다.

답변 1

0

노원두님의 프로필 이미지
노원두
지식공유자

안녕하세요! 민규님!

먼저 소스코드의 리프레시를 위해서는, 도커의 volumes 뿐만 아니라 nodemon에 대한 이해도 필요합니다.

 

도커를 생각하지 않고, 단순히 node 프로그램만으로 index.js 파일을 실행시킬 때, 역시 index.js 파일을 수정한다고 해서 리프레시가 되지 않습니다!
이 경우, 수정된 index.js를 감지하여 리프레시해주는 nodemon 프로그램으로 소스코드를 실행시켜 주셔야해요!

다음으로, 도커를 추가로 사용하는 경우에는, 도커 내부에서 nodemon 프로그램으로 소스코드를 실행시키더라도 소스코드 변경을 감지할 수 없으며 리프레시 되지 않습니다!
이유는 도커 외부와 도커 내부가 격리되었기 때문에 그래요!
이 때는, 도커 외부의 파일을 수정하였을 때 수정된 파일이 도커 내부와 공유될 수 있도록 volumes 설정을 해주셔야 합니다.


따라서, 총 2가지를 다시 한 번 확인해 주세요.

1. Dockerfile 부분에서 실행하고 있는 명령어가 package.json을 통해 nodemon을 사용하고 있는지 확인해 주세요!

  1. docker-compose 에서 volumes 설정을 확인해 주시고, 다시 한 번 테스트 해 주세요
    (테스트시, volumes에 설정된 파일을 수정하셨을 때만 리프레시가 되겠죠?!)