TGViewer
DevOps MemOps DevOps MemOps @devops_memops · 6.32K subscribers
Post #8007 1.38K
Трюки для ускорения Docker-образов на проде

Мультистейдж билды

Используйте multi-stage builds, чтобы собрать приложение в одном контейнере, а продакшн-образ сделать минимальным:

# Сборка
FROM golang:1.22 as builder
WORKDIR /app
COPY . .
RUN go build -o app

# Продакшн
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/app .
CMD ["./app"]


Минимизируйте базовые образы

Выбирайте облегчённые базовые образы:
- alpine вместо ubuntu
- distroless для максимальной безопасности и минимального веса

Оптимизируйте порядок слоёв

Чем выше изменяемость, тем ниже слой:
- Сначала COPY go.mod, npm package.json, установка зависимостей
- Потом COPY . . с кодом проекта

Это позволяет кэшировать большую часть слоёв даже при частых изменениях кода.

Убирайте за собой

Всегда удаляйте временные файлы и зависимости для сборки:

RUN apt-get install -y build-essential && \
make build && \
apt-get remove --purge -y build-essential && \
apt-get autoremove -y && \
apt-get clean


Сжимайте образы

Используйте docker-slim, он автоматически оптимизирует образ, удаляя всё ненужное:

docker-slim build --http-probe my-app:latest

Как применять и чего избегать
- В продакшне старайтесь держать образы <100MB
- Не добавляйте лишние пакеты “на всякий случай”
- Проверяйте образы на уязвимости: trivy image your-app:tag

MemOps🤨
  • 👍 9
More from @devops_memops
  1. Sep 24, 2026MemOps 😃
  2. Sep 24, 2026Как находить нестабильные тесты с помощью merge queue и main Если merge queue гарантирует,…
  3. Sep 24, 2026DarkHost — хостинг и VDS для ваших проектов Размещайте сайты, интернет-магазины, приложени…
  4. Sep 24, 2026MemOps 😃
  5. Sep 24, 2026От входа к шлюзовому API: Как мы модернизировали сеть в нашем кластере GKE Недавно мы пере…
  6. Sep 24, 2026MemOps 😃
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →