Docker
Haladó témák
Multi-stage build, image optimalizálás, build cache, és biztonsági alapok.
Haladó témák
Multi-stage build
A multi-stage build szétválasztja a build és a runtime stádiumot, így az éles image kisebb lesz.
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:18-alpine AS production
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY package*.json ./
RUN npm ci --only=production
USER node
EXPOSE 3000
CMD ["node", "dist/server.js"]Image optimalizálás
FROM node:18-alpine
RUN apk add --no-cache curl git \
&& rm -rf /var/cache/apk/*
RUN npm ci --only=productionBuild cache kihasználása
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run buildSecurity alapok
- Futass nem-root felhasználóval.
- Használj konkrét verziókat, kerüld a
latest-et. - Secretek ne kerüljenek az image-be.
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
USER appuserRövid összefoglaló
- Multi-stage build az egyik legnagyobb méret/célhatékonyság win.
- Cache-barát Dockerfile sorrend jelentősen gyorsít.
- Secreteket runtime-ban add át; konténer ne fusson rootként.