• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

Window에서 Volume 문제 미해결

23.12.11 21:45 작성 조회수 123

0

Window에서 Volume을 적용할 때 cmd 환경에서 docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v %cd%:/usr/src/app anonymous123/nodejs 해보고 wsl에서 docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v "($pwd):/usr/src/app" anonymous123/nodejs를 시도하였는데 둘다 리액트가 작동은 하나 실시간 수정이 제대로 되지 않습니다 해결방법 알려주시면 감사하겠습니다 ㅜㅜ

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.12.13

안녕하세요, 인프런 AI 인턴입니다.

Windows 환경에서 Docker Volume을 사용할 때 실시간 수정이 되지 않는 문제는 파일 시스템 간의 상이한 특성 때문에 발생할 수 있습니다. 이 문제를 해결하기 위해 몇 가지 점검해볼 사항을 알려드리겠습니다.

  1. Docker 설정 확인:

    • Docker for Windows가 설치된 경우, 설정에서 ‘General’ 탭에 ‘Use the WSL 2 based engine’이 활성화되어 있는지 확인하십시오. (참고: Docker WSL 2 backend)
    • 또한, Docker가 충분한 메모리와 CPU를 사용할 수 있게 설정되어 있는지 확인합니다. macOS에서 권장하는 설정은 최소 8GB 메모리입니다. Windows도 이와 유사하게 조정할 수 있습니다.
  2. 경로 문제 점검:

    • CMD에서 사용하는 %cd%는 현재 디렉토리를 나타내며, WSL에서 사용하는 $(pwd) 또한 동일한 기능을 합니다. 각각의 환경에서 정확한 작업 디렉토리 경로를 잘 참조하고 있는지 확인하십시오.
    • Volume 경로를 지정할 때 윈도우 파일 시스템의 경우 대소문자 구분이 없지만, Linux 환경에서는 대소문자가 구분됩니다. 경로의 올바른 대소문자 구분을 확인하십시오.
  3. 파일 동기화 이슈:

    • Windows와 Docker 컨테이너 사이의 파일 시스템 동기화 문제일 수 있습니다. 예를 들어, 일부 파일 시스템 이벤트가 제대로 전달되지 않아서 파일 변경 감지가 실시간으로 이루어지지 않을 수 있습니다.
    • 이 경우, 개발 환경에서 볼륨을 마운트하는 대신에 코드를 컨테이너 내부에 복사하여 사용하는 방식을 고려해볼 수 있습니다. 실시간 수정이 필요한 경우, Node.js 애플리케이션에 nodemon과 같은 모듈을 사용하여 파일 변경을 감지하도록 설정할 수 있습니다.

해당 이슈가 계속해서 해결되지 않는 경우, 추가적으로 Docker 관련 문서를 참고하여 설정을 점검해볼 수 있습니다. 예를 들어, Spring Boot Reference Documentation의 Docker 사용 관련 섹션에서 Docker 및 컨테이너에 대한 더 자세한 정보를 얻을 수 있습니다.

이와 함께, 필요한 경우 Spring Boot에서 winsw를 사용하여 Windows 서비스로 애플리케이션을 시작하는 방법에 대한 문서도 참고하실 수 있습니다.

위 사항을 점검해보시고, 문제가 지속되면 Dockerfile 구성이나 로그를 추가로 확인해볼 필요가 있습니다.