Senior
Kas ir Multi-stage build Docker?
sobes.tech AI
Atbilde no AI
Daudzstāvu būvniecība Docker ir tehnika, kas ļauj izveidot vairākus būvniecības posmus vienā Dockerfile, kur katrs posms var izmantot savu pamata attēlu. Galvenā ideja ir atdalīt būvniecības posmus (piemēram, kompilāciju, atkarību instalēšanu) no galīgā attēla, lai galīgajā konteinerā būtu tikai nepieciešamie faili programmas palaišanai, bez liekiem instrumentiem un artefaktiem.
Tas ievērojami samazina galīgā attēla izmēru un palielina drošību, jo galīgajā konteinerā nav būvniecības rīku.
Piemērs Dockerfile ar daudzstāvu būvniecību:
# Būvniecības posms
FROM node:18 AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
RUN npm run build
# Galīgais posms
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
Šeit vispirms tiek būvēta React lietojumprogramma, un pēc tam tikai gatavi statiskie faili tiek kopēti uz vieglu nginx attēlu.