Sobes.tech
Senior

Čo je Multi-stage build v Docker?

sobes.tech AI

Odpoveď od AI

Viacstupňová stavba v Docker je technika, ktorá umožňuje vytvárať viacero fáz zostavenia v jednom Dockerfile, pričom každá fáza môže používať vlastný základný obraz. Hlavnou myšlienkou je oddeliť fázy zostavenia (napríklad kompiláciu, inštaláciu závislostí) od finálneho obrazu, aby vo finálnom kontajneri boli iba súbory potrebné na spustenie aplikácie, bez zbytočných nástrojov a artefaktov.

Toto výrazne znižuje veľkosť finálneho obrazu a zvyšuje bezpečnosť, pretože vo finálnom kontajneri nie sú nástroje na zostavenie.

Príklad Dockerfile s viacstupňovou stavbou:

# Fáza zostavenia
FROM node:18 AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
RUN npm run build

# Finálna fáza
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html

Tu sa najskôr zostaví React aplikácia, a potom sú len hotové statické súbory skopírované do ľahkého nginx obrazu.