backup: 2026-04-17 11:28

This commit is contained in:
Dmitry
2026-04-17 11:28:35 +03:00
commit 21a95ec314
653 changed files with 244637 additions and 0 deletions
@@ -0,0 +1,30 @@
# Docker — Multistage build (one-screen)
## 1) Идея
**Multistage build** — многоэтапная сборка Docker-образа: сборку делим на этапы (stages) и помечаем их.
Обычно:
- stage 1: “builder” (компиляция, зависимости, tooling)
- stage 2: “runtime” (только артефакт + минимальный runtime)
## 2) Что даёт
- **меньше итоговый образ**,
- быстрее сборка/доставка (часто),
- меньше зависимостей в runtime,
- **меньше поверхность атаки**,
- можно переиспользовать промежуточные stages.
## 3) Мини-пример
```dockerfile
FROM golang:1.22 AS builder
WORKDIR /src
COPY . .
RUN CGO_ENABLED=0 go build -o app ./cmd/app
FROM gcr.io/distroless/static
COPY --from=builder /src/app /app
ENTRYPOINT ["/app"]
```
---
**Source:** [[Multistaging - Docker|Multistaging - Docker]]