В одном Dockerfile можно отделить сборку от запуска: каждый
FROM начинает новый этап, а COPY --from=build переносит в финальный образ только артефакт. В примере Docker Go SDK и промежуточные файлы остаются на этапе сборки, а образ на базе scratch содержит только бинарник.Именуйте этапы через
AS build: тогда COPY не сломается после перестановки инструкций. Для отладки собирайте этап командой docker build --target build . BuildKit обработает лишь этапы, от которых зависит выбранная цель.В руководстве Docker есть варианты с внешним образом и наследованием этапов. Начните с этапов сборки и запуска, затем убедитесь, что финальный образ стартует без SDK и промежуточных файлов.
