• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

WORKDIR 설정과 관련하여 문의드립니다.

21.12.03 23:27 작성 조회수 328

1

안녕하세요!
강의를 듣다가 햇갈리는 부분이 있어서 문의 드립니다.
 
------------------------------------------
Dockerfile 작성시
1. npm install을 실행하기 위해 package.json을 작성한다.
2. package.json을 컨테이너에 복사해주기 위해 COPY 옵션을 줘서 넣어준다.
3. ./ 경로에 복사할 경우 파일 중복 및 파일 관리 문제가 발생할 수 있어서 WORKDIR 옵션으로 복사할 파일 경로를 설정해준다.
------------------------------------------
 
이런 식으로 흐름으로 진행이 되는것 같은데요,
WORKDIR 옵션을 어떻게 줬느냐에 따라서 package.json 파일이 위치하는 경로가 달라질것 같은데..
 
질문1. package.json파일의 위치에 상관없이 npm install이 실행 되는건가요?(이건 node.js 공부를 해야하는 거겠죠..? ㅎㅎ)
 
질문2. 아니면 node.js가 아니라 다른 베이스 이미지 파일을 사용한다면 WORKDIR 경로에 따라서 이미지 실행이 안될수도 있나요?
 
 
 
답변 부탁드리겠습니다 ㅜㅜ
 

답변 1

답변을 작성해보세요.

1

안녕하세요 !!!! 
궁금해하면서 공부하시는 모습이 너무 보기 좋네요 ㅎㅎㅎ ! 

질문1. package.json파일의 위치에 상관없이 npm install이 실행 되는건가요?(이건 node.js 공부를 해야하는 거겠죠..? ㅎㅎ)
 
WORKDIR '/usr/src/app'
COPY package.json .
RUN npm install
COPY ./ ./

여기 보시면 /usr/src/app 에 packag.json이 들어가서 거기서 npm install 이 이뤄집니다.
그렇게 되면 그곳에 node_modules 폴더도 생기겠죠 ! package.json 파일이 있는곳에서만 npm install 이 가능합니다 !!
그래서 WORKDIR 의 디렉토리에 packag.json 을 넣어주고 그 디렉토리 위치에서 npm install을 해줍니다.

 
질문2. 아니면 node.js가 아니라 다른 베이스 이미지 파일을 사용한다면 WORKDIR 경로에 따라서 이미지 실행이 안될수도 있나요?

베이스 이미지와 WORKDIR은 관계는 없습니다. 윈도우 컴퓨터든 맥 컴퓨터든 어떠한 프로그램을 사용하려면 그 해당 디렉토리에 가서 사용하는 것 처럼  베이스 이미지로 인해서 WORKDIR을 바꿔주고 하는 것은 없습니다 ~ ! 

수고하세요 !!

 

답글 달아주신거 보고 다시 실행해보니 이해됐습니다 ㅎㅎ

감사합니다!!