Sobes.tech
Senior

Ի՞նչ է Multi-stage build-ը Docker-ում։

sobes.tech AI

Պատասխան AI-ից

Մուլտիստեյջ կառուցում Docker-ում՝ դա տեխնիկա է, որը թույլ է տալիս ստեղծել մի քանի շինարարական փուլ մեկ Dockerfile-ում, որտեղ յուրաքանչյուր փուլ կարող է օգտագործել իր սեփական հիմք պատկերակը: Հիմնական գաղափարը՝ բաժանել շինարարական փուլերը (օրինակ՝ կոմպիլացիա, կախվածությունների տեղադրում) վերջնական պատկերից, որպեսզի վերջնական կոնտեյներում լինեն միայն անհրաժեշտ ֆայլերը՝ գործարկելու համար, առանց ավելորդ գործիքների և արխիվների:

Այս կերպ զգալիորեն նվազում է վերջնական պատկերակի չափը և բարձրանում անվտանգությունը, քանի որ վերջնական կոնտեյներում չեն լինում շինարարական գործիքներ:

Մուլտի-շինարարական Dockerfile-ի օրինակ՝

# Շինարարական փուլ
FROM node:18 AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
RUN npm run build

# Վերջնական փուլ
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html

Այստեղ նախ կառուցվում է React հավելվածը, իսկ հետո միայն պատրաստի ստատիկ ֆայլերը պատճենվում են թեթև nginx պատկերին։