[Docker] Docker Volume(볼륨)을 이용해 빌드 없이 소스 코드 반영하기

2023. 4. 14. 16:59docker

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해줘야 반영이 되는데  프로세스 죽이고 다시 띄우면 적용됩니다.