Cloud Pokročilý
Multi-stage Docker Builds¶
DockerMulti-stageBuild 3 min čtení
Optimalizace Docker images pomocí multi-stage builds. Menší images, bezpečnější produkce.
Princip¶
Jeden Dockerfile, více FROM instrukcí. Build dependencies zůstávají v build stage, do finálního image jde jen runtime.
Go příklad¶
# Build — 1.2 GB
FROM golang:1.22 AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o server .
# Runtime — 15 MB!
FROM alpine:3.19
RUN apk add --no-cache ca-certificates
COPY --from=builder /app/server /server
USER nobody
ENTRYPOINT ["/server"]
Rust příklad¶
FROM rust:1.76 AS builder
WORKDIR /app
COPY . .
RUN cargo build --release
FROM debian:bookworm-slim
COPY --from=builder /app/target/release/myapp /usr/local/bin/
CMD ["myapp"]
Shrnutí¶
Multi-stage = dramatické zmenšení images. Go: 1.2GB → 15MB. Node: 1GB → 150MB. Vždy používejte.
Potřebujete pomoct s implementací?¶
Náš tým má zkušenosti s návrhem a implementací moderních architektur. Rádi vám pomůžeme.