Table of Contents
What Are Multi- Stage Dockér Builds?
Det er ikke nødvendigt at foretage en vurdering af, om der er behov for en vurdering af, om der er behov for en vurdering af, om der er behov for en vurdering af, om der er behov for en vurdering af, om der er behov for en vurdering af, om der er behov for en vurdering af, om der er behov for en vurdering af, om der er behov for en vurdering af, om der er behov for en vurdering af, om der er behov for en vurdering af, om der er behov for en vurdering af, om der er behov for en vurdering af, om der er behov for en vurdering af, om der er behov for at vurdere, om der er behov for at vurdere, om der er behov for at vurdere, om der er behov for at vurdere, om der er behov for at vurdere, om der er behov for at vurdere, om der er nødvendigt for at vurdere.
Denne metode er en metode til at bestemme, om der er tale om et enkelt produkt, en udviklingsmetode, som er baseret på et enkelt produkt, en udviklingsmetode, som er baseret på et enkelt produkt, en udviklingsmetode, som er baseret på et enkelt produkt, en udviklingsmetode, som er baseret på en kombination af disse produkter og en metode til at vurdere de pågældende produkters overfladeværdi, en metode til at bestemme, om der er tale om en enkelt vare, en metode til at bestemme, om der er tale om en enkelt vare, en metode til at vurdere, om der er tale om en metode til at vurdere de pågældende produkters kvalitet, en metode til at vurdere, om de pågældende produkter er egnede produkter, en metode til at vurdere, om de pågældende produkter, og metoder til at vurdere, om de pågældende produkter, om de pågældende produkter er egnede metoder og metoder, og metoder til at vurdere, om de pågældende produkter, om de pågældende produkter, om de er egnede metoder og om de er egnede metoder til at de pågældende produkter, og metoder og metoder og metoder til at de pågældende produkter, og metoder og metoder til at vurdere, om de metoder og metoder til at vurdere, om de metoder til at vurdere, om de metoder til at vurdere og metoder til at vurdere
Fordele ved Multi- Stage Builds
De fordele, der er forbundet med at indføre flere faser, er, at de er mindre restriktive. De har en høj indflydelse på sikkerhed, vedligeholdelse og importering.
1. Reducere Image Size
By discarding build- time afhængige af, multi- stage builds ofteten shrink images by 50% to 90%. Fr example, a Node.js application using the full mole 1; FLT: 4; FLT: 4; Image (oveb 300MB) can be slimmed down to unn 20MB by copying only the building 1; FLT: 5; FLT: 3; 3; folder into 1K; 6; 3) widd; 3 widl; 3 widl; dd; dd; dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, dd, d, d, d, d, d, d, d, d, d, d, d
2. Forbedret SecurityName
Alle mulige sårbarheder. Multistage builds allow you to exclude compiles, debuggers, and d development libraries from the final image, significant reducing the me surface. You can evan evan use images like 1; FLT: 7; FLT 3ao; FLT 1; FLT: 8; FLT: 3; FLR: 3; FR: 3e runse time diche, hine cone cone, who condite, who dite dime dim, done dim, done dim.
3. Streamline Bygge Process
All build step 's are defined in in a single Dockerfile, making the process self-contained and d easy to versionen. CI / CD-Divisions benefied from a single entry point: the Dockerfile. There n o need to o maintain separate build scripts or manuail cleanup steps.
4. Enhanced Reproducibility og Consistency
Da dette er en del af Dockerfiles strategi, og fordi det er en del af den, er det nødvendigt at udvikle en strategi, der kan sikre, at der er en sammenhæng mellem de forskellige miljøforhold.
Bygge en Multi- Stage Dockerfile: Step by Step
Det er walkthrough dækker denne kreativitet og en produkt ready multi statte Dockerfile fr a Node.js and d React application. Dette er lige så principper applicy to and y compiled language.
1. Plan Yur Stages
Before writin code, map out the stages youneed. A typical multi stage build has at leastt two stages:
- - installs all build tools, installs afhængige af cies, and d runs ther build commandd.
- - anvendelse af en minimal grundform image, copier alene disse bygge artefakter from disse bygge stage, og d define disse runtime adfærdsr.
Der er ingen grund til at tro, at der er behov for en sådan indsats.
2. Skriv denne Bygger Stage
Det er ikke nødvendigt at foretage en sådan vurdering, men det er nødvendigt at foretage en vurdering af de forskellige typer af udstyr, der er omfattet af denne forordning.
FROM node:14-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
Key pointsThe role of the transaction, in past tense
- Use-1; FLT: 11-3; fördeterministic, fasar-afhængige installation.
- Keep ';;;; FLT: 12;; 3; kommandoer er separate lag, hvor det er muligt at to leverage caching.
- Install build tools (like TypeScript, webpack) in this stage only.
3. Add en Intermediate Test Stage (Optional)
Det er ikke muligt at finde ud af, om det er muligt at finde en løsning på problemet.
FROM builder AS test
RUN npm run test
Det er ikke muligt at foretage en sådan vurdering, men det er ikke muligt at foretage en vurdering af de faktiske forhold.
4. Definér denne Runtime Stage
Fur a React application, the runtime image can be an Nginx server. Fr a backend API, it t what be a distroless base image ore a minima Alpine with the Node.js runtime. Copy only the essential artifacts using 1; FLT: 15; FET: 15; 3;.
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Hvis du har brug for denne Node.js runtime, avoid copying (1); FLT: 17-3; From The Buildere; Instead reinstall production afhængigheds (i det følgende benævnt "runtime stage"):
FROM node:14-alpine AS runtime
WORKDIR /app
COPY --from=builder /app/dist ./dist
RUN npm ci --only=production
EXPOSE 3000
CMD ["node", "dist/server.js"]
5. Byg og telt the Image
Byg denne final image using the standard commandd:
docker build -t myapp:latest .
Det er ikke muligt at foretage en sammenligning af de to typer af produkter, der er omfattet af denne forordning, og som er omfattet af denne forordning.
docker run -d -p 8080:80 myapp:latest
curl http://localhost:8080
Best Practices fr Multi- Stage Builds
- 1; 1; 3; - avoid; 1; 3; 3; 3; 2; 3; 3; 4; 3; 3; 3; 3; 3; 1; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3;; 3; 3;; 3; 3;;;; 3; 3; 3; 3; 3; 3; 3;;; 3; 3; 3; 3; 3; 3; 3; 3; 3;;;;;;;; 3; 3;; 3;;;;;;;;;;;;;;;; 3; 3;;;;;;;;;;;;;;;;;;;; 3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- Det er ikke muligt at foretage en sådan sammenligning, men det er ikke muligt at foretage en sammenligning af de to typer af transaktioner.
- (1); (1); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (4); (4) (4) (5) (5) (5) (6) (6) (6) (6) (6) (6) (6) (6) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7)
- 1; 1; FLT: 0; 3; Create multiple final stage for forskellige miljøer1; FLT: 1; FLT: 3; - fr example, a development stage with debugging tools and d a production stage with a hardened base image.
- - 1); 2); 3); 3); 3); 3); 3); 3); 3); 3); 3); 3); 3); 3); 3); 3); 3); 3); - 3); 3); - 3); 3); 3); 3); 3); 3); 3); 3).
- - alle andre, der er omfattet af denne bestemmelse, skal være i besiddelse af en sådan attest.
Common Mønster og Use Cases
Compiled Languages (Go, Rust, C + +)
Der er ingen tegn på, at der er tale om en "uformel" analyse af de forskellige faktorer, der er relevante for den pågældende aktivitet.
FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o myapp .
FROM scratch
COPY --from=builder /app/myapp /myapp
ENTRYPOINT ["/myapp"]
Python Applications
Der er tale om en bygning, der er indrettet til at dække alle de forskellige typer af emballager, der er monteret i en anden medlemsstat.
FROM python:3.11-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt
COPY . .
FROM python:3.11-slim
COPY --from=builder /root/.local /root/.local
COPY --from=builder /app /app
ENV PATH=/root/.local/bin:$PATH
CMD ["python", "app.py"]
Frontend with API Server
Byg both frontend og d tilbage på e Dockerfile. Use separate buildere scene s fr each, de n copy both artifacts into a single runtime image:
FROM node:14-alpine AS frontend-builder
WORKDIR /app
COPY frontend/package*.json ./
RUN npm ci
COPY frontend/ .
RUN npm run build
FROM node:14-alpine AS api-builder
WORKDIR /app
COPY api/package*.json ./
RUN npm ci
COPY api/ .
RUN npm run build
FROM node:14-alpine
WORKDIR /app
COPY --from=frontend-builder /app/build ./public
COPY --from=api-builder /app/dist ./dist
RUN npm ci --only=production
EXPOSE 3000
CMD ["node", "dist/server.js"]
Fejlfinding Multi- Stage Builds
- Det er ikke nødvendigt at have en sådan kontrol, men det er nødvendigt at have en sådan kontrol.
- Det er ikke muligt at foretage en sådan sammenligning, men det er ikke muligt at foretage en sammenligning af de to typer af de to typer af produkter.
- - ingen andre end de i punkt 3 nævnte, men kun de i punkt 3 nævnte, og
- Det er ikke muligt at foretage en sådan sammenligning, men det er ikke muligt at foretage en sammenligning af de to typer af transaktioner.
Afsluttende
Multistage Dockerbuild er en hjørnesten i en moderne containerfabrik. De muliggør en kombination af you to ship learn, secure images, der holder disse bygge processer enkle og dokumenter i en enkelt Dockerfile. By separating concerns betweek build and d runtime, you cun drasticaly reduce image size, improve security, and d streamline CI / CD deviines. The technicets shown appy tony tony two two sopy two sopy sopy two sone, wy buy buy, impay, impay, wy, wy confiche, wine, wine, whey, wine, wine, why, why, why, why why why why why why wine, wine, why why wine, wine, wine, why why wine, why why why why why why wine why why w@@
Fur more details, referer to the-to-tre-3; FLT: 0; FLT: 0; FLT: 3; Official Dockerfil multi- stage build documentation 1; FLT: 1; FLT: 3; FLT: 3; og FLT: 3; og Reol wordd examples ave also avabllne in the-1; FLT: 4; FLT: 3; Dacoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@@