Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1K
Views
Confusion with node_modules being ignored by .dockerignore

Thought I'd just wanted to share this. So I am testing creation of a docker image/container with a nodejs app usiung Dockerfile. Everything went smoothly, until I tried to add the .dockerignore file, where I listed the following files in it, expecting that they won't get copied into the docker image:

node_modules 
dockerignore 
Dockerfile

And here is my Dockerfile:

FROM node:latest
WORKDIR /app
ADD . .
RUN npm install
CMD node index.js

So I trashed and rebuilt my image with the existing Dockerfile and the new .dockerignore file. After the creation, I ran docker run -it --entrypoint sh <image name> to check if those files/folders do not appear anymore.

Dockerfile and .dockerignore are gone. But node_modules folder is still there.

Took me a while to "realize" that MAYBE the node_modules folder in the image is created by the Dockerfile's npm install step, not the folder copied from the host anyway.

Am I right?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

So I got the answer based on tkausl and David Maze's comments (thanks guys!) .

The node_modules inside the image is generated from the Dockerfile 'npm install' step.

And as for the question:

if .dockerignore does not include node_modules, Dockerfile would have overwritten node_modules anyway? So why bother to put node_modules inside the .dockerignore file?

the comment I received was that if I left out the node_modules from the .dockerignore file, then the docker build process would have slowed down due to unnecessary copying of the node_modules, PLUS the image would have been larger.

Therefore, the prudent thing is to keep node_modules inside .dockerignore file to achieve more efficiency in the docker build process.

UPDATE: I did try to run the scenario with the node_modules removed from .dockerignore file, and the image is showing 940MB, whereas creating the image with node_modules inside the .dockerignore file - though the process may be more efficient - the output image is 942MB (2MB larger).

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!