TGViewer
DevOps 360° DevOps 360° @devops360 · 326 subscribers
Post #38 513
Мультимодульные Dockerfile (или Multi-stage builds) — это современный подход к созданию контейнеров, который позволяет оптимизировать процесс сборки, уменьшить размер изображений и улучшить безопасность. Давайте разберем ключевые этапы и их преимущества и недостатки.

### Этап 1: Зачем использовать мультимодульные Dockerfile? 🤔

Мультимодульные Dockerfile позволяют разбивать процесс сборки на несколько этапов, где каждый этап может использовать разные базовые образы. Это хорошо, потому что:

- Оптимизация размера 📦: Вы можете использовать более тяжелые образы для сборки (например, с компиляторами), а затем копировать только необходимые артефакты в финальную сборку, что значительно снижает размер итогового образа.
- Повышение безопасности 🔒: Легкие образы содержат меньше уязвимостей, так как в них нет инструментов, которые использовались для сборки.
- Упрощение управления зависимостями 🔗: Вы можете создавать отдельные слои для различных зависимостей, что упрощает обновления и отладку.


### Этап 2: Как работает мультимодульный Dockerfile? 🔄

Рассмотрим пример мультимодульного Dockerfile для приложения на Go:

# Этап сборки
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# Финальный образ
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]


1. Первый этап: Мы используем образ Golang, чтобы собрать приложение. Здесь находятся все необходимые инструменты.
2. Второй этап: Мы создаем легкий образ на базе Alpine, копируем только скомпилированный бинарник и запускаем его.

### Этап 3: Преимущества и недостатки 🌟🔻

Преимущества:
- Улучшенная производительность развертывания 🚀.
- Снижение затрат на хранение образов 💰.
- Более быстрая сборка благодаря кэшированию между этапами ⏱.

Недостатки:
- Усложнение Dockerfile: чем больше этапов, тем труднее его читать и поддерживать 📖.
- Может потребоваться больше ресурсов для сборки на этапе разработки, так как используются тяжелые образы 💻.

### Заключение ✨

Мультимодульные Dockerfile представляют собой мощный инструмент, который при правильном использовании может значительно улучшить процесс разработки и развертывания приложений. Они позволяют создавать легкие и безопасные образы, сохраняя при этом гибкость работы с зависимостями. Однако важно помнить об усложнении процесса и следить за читаемостью Dockerfile. НО! не забываем , что в самой книге по докеру которая в закрепе рекомендуется подход 1=1 в 1 контейнере 1 процесс!
🔝 Наш чат для обсуждений |🚀 Буст для канала
Telegram DevOps 360° Chat You’ve been invited to join this group on Telegram.
  • ❤ 4
More from @devops360
  1. Sep 28, 2026🔥 УРА, НОВОСТНЫЕ НОВОСТИ! (МНОГО БУКВ) 🔥 В современном IT процветает какой-то безумный к…
  2. Jul 20, 2026ПРИВЕТ! КРЧ если вкратце, то думаю через пару лет будем переходить с ямл инженеров и полно…
  3. May 21, 2026ХЕЛОУ! 🚀 Ingress NGINX — ВСЁ. Почему пора переезжать на Gateway API Главный сетевой контр…
  4. Jan 20, 2026ХЕЛЛОУ ГАЙЗ! смотрите какую интересную штуку мне подсказали , можно проверить свои знания…
  5. Nov 21, 2025Хелоу! Ingress NGINX уходит: что важно знать Kubernetes объявил о завершении поддержки Ing…
  6. Nov 14, 2025Всех с пятницей! Накидал доку как для себя так и для общего пользования по накатке бекапа…
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 →