Learning
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=production

Build cache kihasználása

FROM node:18-alpine
WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .
RUN npm run build

Security 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 appuser

Rö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.

On this page