Junior — Middle
Milyen esetekben ajánlott a több szakaszos Docker építés alkalmazása a konténerek létrehozási folyamatának optimalizálására?
sobes.tech MI
Válasz az MI-től
A Docker több szakaszos építése (multi-stage build) a következő forgatókönyvekben ajánlott:
- A végső kép méretének optimalizálása: az első szakaszban az alkalmazás teljes eszköz- és függőséggel épül, a következő szakaszokban csak a szükséges artefaktokat másolják egy minimális képbe.
- A build szakaszok izolálása: lehetővé teszi a build környezet és a futtatási környezet szétválasztását, növelve a biztonságot és csökkentve a sebezhetőségek számát.
- Karbantartás és frissítések egyszerűsítése: könnyen változtathatók az alapképek a build és a futtatás számára anélkül, hogy egymást befolyásolnák.
Példa Pythonhoz:
# Build szakasz
FROM python:3.10-slim as builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt
COPY . .
# Végső kép szakasz
FROM python:3.10-alpine
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY --from=builder /app .
ENV PATH=/root/.local/bin:$PATH
CMD ["python", "app.py"]
Ez a megközelítés csökkenti a kép méretét és elkülöníti a build függőségeket a futtatási környezettől.