Или многоступенчатые сборки полезны только для подготовки некоторых файлов и последующего копирования их в другое базовое изображение?
Это основной вариант использования, описанный в " Использование нескольких-stage builds"
Основная цель - уменьшить количество слоев путем копирования файлов из одного изображения в другое, не включая среду сборки, необходимую для создания указанных файлов.
Нодругой целью может быть , а не перестройка всего Dockerfile, включая каждый этап.
Тогда ваше предложение (не копирование) все еще может применяться.
Вы можете указать целевой этап сборки. Следующая команда предполагает, что вы используете предыдущий Dockerfile, но останавливается на этапе с именем builder:
$ docker build --target builder -t alexellis2/href-counter:latest .
Несколько сценариев, в которых это может быть очень мощным:
- Отладка определенногоэтап сборки
- Использование этапа
debug
со всеми включенными символами или инструментами отладки и простой этап production
- Использование этапа
testing
, в котором ваше приложение заполняется тестовыми данными, но построение для production
с использованием другой стадии, которая использует реальные данные