Sobes.tech
Senior

Czym jest wieloetapowe budowanie w Dockerze?

sobes.tech AI

Odpowiedź od AI

Wielostopni build w Dockerze to technika pozwalająca na tworzenie wielu etapów kompilacji w jednym pliku Dockerfile, gdzie każdy etap może korzystać z własnego obrazu bazowego. Głównym pomysłem jest oddzielenie etapów kompilacji (np. kompilacji, instalacji zależności) od obrazu końcowego, tak aby w końcowym kontenerze znajdowały się tylko pliki niezbędne do uruchomienia aplikacji, bez zbędnych narzędzi i artefaktów.

To znacznie zmniejsza rozmiar końcowego obrazu i zwiększa bezpieczeństwo, ponieważ w końcowym kontenerze nie ma narzędzi do kompilacji.

Przykład Dockerfile z wielostopniowym buildem:

# Etap kompilacji
FROM node:18 AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
RUN npm run build

# Etap końcowy
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html

Tutaj najpierw budowana jest aplikacja React, a następnie tylko gotowe pliki statyczne są kopiowane do lekkiego obrazu nginx.