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.