docker
[Docker] Docker Volume(볼륨)을 이용해 빌드 없이 소스 코드 반영하기
shiningjean
2023. 4. 14. 16:59
COPY할 경우 소스코드 변경 할 때마다 이미지를 변경(빌드)해야 했습니다.
Volume은 도커 컨테이너의 부분들이 로컬의 있는 부분을 반대 반향으로 참조(Mapping)하고 있습니다.
Volume을 이용해 어플리케이션 실행하는 법
docker run -p 5000:8080 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app <이미지 아이디>
-v /usr/src/app/node_modules
호스트 디렉토리(로컬 or EC2같은 컴퓨터)에 node_modules은 없기에 컨테이너에 매핑을 하지 말라고 하는 것
-v $(pwd):/usr/src/app
pwd (현재 작업 중인 디렉토리. print working directory) 경로에 있는 디렉토리 혹은 파일을 /usr/src/app 경로에서 참조.
WORKDIR 경로를 참조해서 매핑시킵니다.
장점
이렇게 Volume을 이용해서 키면 빌드할 때 소스 코드를 바꾸더라도 바꾼 코드가 적용 됩니다.
COPY는 이미지를 빌드하고 run해줘야 반영이 되는데 프로세스 죽이고 다시 띄우면 적용됩니다.