Многоэтапные сборки в Docker позволяют создать более эффективные образы, разделяя процесс сборки на несколько этапов с использованием разных базовых образов.
Преимущества:
Принцип работы:
Используется две и более директив FROM в одном Dockerfile. Каждый FROM определяет отдельный этап сборки. Данные и артефакты копируются между этапами с помощью директивы COPY --from=<имя_этапа_или_номер>.
dockerfile
В этом примере первый этап builder собирает приложение, включая установку гемов. Второй этап использует легковесный образ ruby:3.2-slim и копирует только собранные артефакты с этапа builder.