Mi az a multi-stage build a Dockerben?
sobes.tech MI
Válasz az MI-től
A Docker több szakaszos buildje egy olyan technika, amely lehetővé teszi, hogy egyetlen Dockerfile-ban több build szakaszt hozzunk létre, ahol minden szakasz saját alapképet használhat. A fő ötlet az, hogy a build szakaszokat (például fordítás, függőségek telepítése) elkülönítjük a végső képtől, így a végső konténer csak azokat a fájlokat tartalmazza, amelyek a alkalmazás futtatásához szükségesek, anélkül, hogy felesleges eszközök és artefaktumok kerüljenek bele.
Ez jelentősen csökkenti a végső kép méretét és növeli a biztonságot, mivel a végső konténerben nincsenek build eszközök.
Példa Dockerfile-ra több szakaszos buildel:
# Build szakasz
FROM node:18 AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
RUN npm run build
# Végső szakasz
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
Itt először a React alkalmazás épül, majd csak a kész statikus fájlokat másolják egy könnyű nginx képre.