작성
·
741
답변 4
0
답변 너무 감사합니다. 제가 이해한게 맞는지 마지막(?)으로 질문하고 싶습니다.
A - 컨테이너 외부, B - 컨테이너 안
1. 볼륨을 이용하여 소스코드를 mapping 하고 된다면 `-v A:B`, B에 package.json과 node_modules만 있어도 서버를 실행할 수 있다.
2. 볼륨을 이용하여 소스코드를 맵핑하고 있다면, 컨테이너에서 실제로 서버를 돌리는데 사용하는 코드는 copy ./ ./를 통해 컨테이너 내부에 복사된 코드가 아닌 컨테이너 외부의 코드를 이용해서 서버를 돌리고 있는 것이다.
3. 볼륨이 없다면 copy ./ ./는 서버를 돌리기 위해 사용되는 코드지만, 볼륨이 있다면 copy ./ ./는 컨테이너를 빌드만을 하기 위한 코드이다.
빠르게 답변해주셔서 너무 감사합니다.
정말 많은것을 배우고 있습니다.
0
다커파일로 COPY ./ ./를 하엿기때문에 소스코드도 컨테이너 내에 다 있다고 생각하는데, 어떤식으로 참조를 하고 어떻게 변경이 반영되는지 이해가 안되요 ㅠㅠ
0
영상을 한번더 주행하다가 질문이 생겨서 댓글로 남깁니다.
-v A:B 를 하게 되면 B(컨테이너)에서 A(현제 경로)를 참조하게 된다고 햇는데 그렇다는 것은 B에는 소스코드가 있는건지 없는건지 혼란이 옵니다.
1,. B에서는 단수히 참조만 하기 떄문에 소스코드가 없다
2. B는 A의 코드가 바뀌면 B도 같이 변경된다
어떻게 작동하는게 맞나요?
1. B 에는 소스 코드 없어도 볼륨을 이룡해 참조한다면 괜찮습니다
2. A가 바뀐다고 해서 B 가 바뀌지는 않습니다 그러기에 볼륨을 이용해줍니다
제가 COPY 와 볼륨을 같이 써서 오히려 이해하는 입장에서는 혼동이 왔나봅니다 ㅠㅠ !!
0
rrallvv님 안녕하세요
저번에도 이 질문 해주셨던 분이 기억나는데
정말 잘이해하셨어야지 이런 질문이 가능하다고 생각합니다 ㅎㅎㅎ
볼륨을 사용한다면 COPY가 ./ ./ 이부분이 없어도 됩니다 하지만 그럼에도 불구하고 넣어주는걸 추천합니다.
그리고 docker 는 배포를 위해서 뿐만아니라 개발환경에서도 유용하기 때문에 개발환경에서부터 구현해주셔도 됩니다.
안녕하세요 !!! 볼륨이 있다면 COPY 부분을 빼셔도 됩니다 ~~ 만약 COPY 를 안한다면 컨테이너에 파일이 없겟죠 그러기 때문에 볼륨을 이용해서 로컬 머신에 잇는 파일들을 참조해서 사용해야 합니다 ~