Sobes.tech
Senior

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.