.dockerignore, ENV & ARG
.dockerignore, FILE, mein, node_modules, .git, .env, jaisi, FILES/FOLDERS, LIST, ki, jaati, HAIN, JO, IMAGE, BUILD, ke, waqt, DAEMON, ko, SEND, hi, NAHI, ki, jaati — ISSE, BUILD, FASTER, hota hai, aur, IMAGE, ACCIDENTALLY, SENSITIVE, DATA, (jaise, .env, files) INCLUDE, nahi, karti.
ENV, aur, ARG, DONO, VARIABLES, DEFINE, karte, HAIN, LEKIN, DIFFERENT, SCOPE, mein: ARG, sirf, BUILD, TIME, par, available, hota hai, (RUNTIME, container, mein, NAHI, DIKHTA), JABKI, ENV, BUILD, aur, RUNTIME, DONO, mein, available, rehta, hai.
# .dockerignore
node_modules
.git
.env
*.log
# Dockerfile mein ARG aur ENV
ARG NODE_VERSION=20
FROM node:${NODE_VERSION}-alpine
ENV NODE_ENV=production
ENV PORT=3000
CMD ["node", "server.js"]- .dockerignore se unnecessary/sensitive files build context se bahar rehti hain
- ARG = sirf build-time available, ENV = build + runtime dono mein available
- --build-arg se ARG values command line se override ki ja sakti hain
.dockerignore, GLOB, PATTERNS, SUPPORT, karta hai — "**/*.log" (HAR, SUBDIRECTORY, mein, .log, files), "!important.log" (EXCLUDE, ke, BAAD, EK, SPECIFIC, FILE, ko, WAAPAS, INCLUDE, karna), aur, "temp/" (POORA, folder, ignore).
node_modules
**/*.log
!keep-this.log
.git
dist/
*.mdARG, ko, EK, DEFAULT, VALUE, DI, ja, sakti, hai, JO, USE, hoti, hai, agar, BUILD, TIME, PAR, KOI, VALUE, na, di, jaaye — "ARG NODE_VERSION=20" jaisa.
ARG NODE_VERSION=20
FROM node:${NODE_VERSION}-alpine
# Override: docker build --build-arg NODE_VERSION=18 .