인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

jaehong2782님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 Docker 입문/실전

[실습] 백엔드 프로젝트(Nest.js)를 Docker로 실행시키기

.dockerignore

작성

·

36

·

수정됨

0

스크린샷 2025-01-28 오후 12.18.26.png

[실습] 백엔드 프로젝트(Nest.js)를 Docker로 실행시키기 강의에서

.dockerignorenode_modules를 지정해주었는데 컨테이너 내부에 node_modules가 들어가져있습니다.

영상에서 강사님 컨테이너에도 node_modules가 있는데 맞는건가요?

- 추가
.dockerignoreREADME.md 파일을 지정하고 빌드하니 README.md는 제외된 것 같습니다. node_modules는 파일이 아니라 디렉토리라 /를 붙여줘야하는 걸까요?

아! 생각해보니 node_modulesCOPY한게 아니라 npm install의 결과물이군요!

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 jaehong2782님! 질문 잘 주셨습니다:D

하나씩 답변 드려볼게요!


영상에서 강사님 컨테이너에도 node_modules가 있는데 맞는건가요?

-> 네! 맞습니다. 컨테이너 내부에 node_modules가 있는 이유는

Dockerfile에 작성해놓은 npm install이라는 명령어를 실행시켰기 때문입니다.

npm install의 명령어를 실행시키게 되면 node_modules 폴더가 생기게 됩니다.

.dockerignorenode_modules를 쓴 이유는 Dockerfile에서의 COPY . .의 명령어가 작동할 때

node_modules 폴더가 복사되는 작업을 방지하기 위해서입니다.


아! 생각해보니 node_modulesCOPY한게 아니라 npm install의 결과물이군요!

-> 답변을 다 하고 난 다음에 스스로 깨달으신 걸 이제 확인했네요ㅎㅎㅎ


 

또 궁금하신 점 생기시면 질문 남겨주세요~~

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. jaehong2782님!

Docker를 사용하여 프로젝트를 설정하는 과정에서 .dockerignore 파일이 예상대로 작동하지 않는 문제를 겪고 계시군요.

.dockerignore 파일은 Docker 이미지 빌드 시, 컨텍스트에 포함시킬 파일과 디렉토리를 필터링하는 역할을 합니다. 일반적으로 node_modules 디렉토리가 .dockerignore에 포함되면 이 디렉토리가 빌드 컨텍스트에 포함되지 않는 것이 맞습니다. 하지만 아래 체크리스트를 확인해보세요:

  1. 경로 확인: .dockerignore 파일의 경로가 Dockerfile과 동일한 디렉토리에 위치해야 합니다. 두 파일이 동일 디렉토리에 있어야 .dockerignore 룰이 올바르게 적용됩니다.

  2. 파일 형식: node_modules 는 디렉토리이므로 .dockerignore 파일에선 일반적으로 node_modules 와 같이 명시합니다. 별도로 /node_modules/ 와 같은 슬래시는 필요하지 않습니다.

  3. 상대 경로 설정: .dockerignore 에서의 경로는 Docker 빌드 컨텍스트의 루트 경로로부터 상대적으로 해석됩니다. 디렉토리 또는 파일의 경로를 정확히 지정해 주세요.

  4. 캐시 문제: 기존에 빌드된 캐시가 남아 있어서 잘못된 결과가 보일 수 있습니다. 이 경우, 캐시를 무시하고 새로운 이미지를 빌드해 보세요:

    docker build --no-cache -t <your-image-name>:<tag> .
    

추가로, .dockerignore 파일에서 README.md 가 무시되었다면 .dockerignore 파일 자체는 정상 작동 중으로 보입니다. node_modules 만 무시되지 않는다면 경로 문제 또는 캐시로 인한 문제일 가능성이 높습니다.

관련 문제 해결에 도움이 될 만한 공지와 답변은 아래 링크에서 확인하실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.