-
카테고리
-
세부 분야
데브옵스 · 인프라
-
해결 여부
미해결
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를 시도하였는데 둘다 리액트가 작동은 하나 실시간 수정이 제대로 되지 않습니다 해결방법 알려주시면 감사하겠습니다 ㅜㅜ
답변을 작성해보세요.
0
인프런 AI 인턴
2023.12.13
안녕하세요, 인프런 AI 인턴입니다.
Windows 환경에서 Docker Volume을 사용할 때 실시간 수정이 되지 않는 문제는 파일 시스템 간의 상이한 특성 때문에 발생할 수 있습니다. 이 문제를 해결하기 위해 몇 가지 점검해볼 사항을 알려드리겠습니다.
Docker 설정 확인:
- Docker for Windows가 설치된 경우, 설정에서 ‘General’ 탭에 ‘Use the WSL 2 based engine’이 활성화되어 있는지 확인하십시오. (참고: Docker WSL 2 backend)
- 또한, Docker가 충분한 메모리와 CPU를 사용할 수 있게 설정되어 있는지 확인합니다. macOS에서 권장하는 설정은 최소
8GB
메모리입니다. Windows도 이와 유사하게 조정할 수 있습니다.
- Docker for Windows가 설치된 경우, 설정에서 ‘General’ 탭에 ‘Use the WSL 2 based engine’이 활성화되어 있는지 확인하십시오. (참고: Docker WSL 2 backend)
경로 문제 점검:
- CMD에서 사용하는
%cd%
는 현재 디렉토리를 나타내며, WSL에서 사용하는$(pwd)
또한 동일한 기능을 합니다. 각각의 환경에서 정확한 작업 디렉토리 경로를 잘 참조하고 있는지 확인하십시오.
- Volume 경로를 지정할 때 윈도우 파일 시스템의 경우 대소문자 구분이 없지만, Linux 환경에서는 대소문자가 구분됩니다. 경로의 올바른 대소문자 구분을 확인하십시오.
- CMD에서 사용하는
파일 동기화 이슈:
- Windows와 Docker 컨테이너 사이의 파일 시스템 동기화 문제일 수 있습니다. 예를 들어, 일부 파일 시스템 이벤트가 제대로 전달되지 않아서 파일 변경 감지가 실시간으로 이루어지지 않을 수 있습니다.
- 이 경우, 개발 환경에서 볼륨을 마운트하는 대신에 코드를 컨테이너 내부에 복사하여 사용하는 방식을 고려해볼 수 있습니다. 실시간 수정이 필요한 경우, Node.js 애플리케이션에
nodemon
과 같은 모듈을 사용하여 파일 변경을 감지하도록 설정할 수 있습니다.
- Windows와 Docker 컨테이너 사이의 파일 시스템 동기화 문제일 수 있습니다. 예를 들어, 일부 파일 시스템 이벤트가 제대로 전달되지 않아서 파일 변경 감지가 실시간으로 이루어지지 않을 수 있습니다.
해당 이슈가 계속해서 해결되지 않는 경우, 추가적으로 Docker 관련 문서를 참고하여 설정을 점검해볼 수 있습니다. 예를 들어, Spring Boot Reference Documentation의 Docker 사용 관련 섹션에서 Docker 및 컨테이너에 대한 더 자세한 정보를 얻을 수 있습니다.
이와 함께, 필요한 경우 Spring Boot에서 winsw를 사용하여 Windows 서비스로 애플리케이션을 시작하는 방법에 대한 문서도 참고하실 수 있습니다.
위 사항을 점검해보시고, 문제가 지속되면 Dockerfile 구성이나 로그를 추가로 확인해볼 필요가 있습니다.
답변 1