Этот Dockerfile уменьшает размер образа Docker для Golang с примерно 1 ГБ до 40 МБ и ускоряет процесс перестроения. Файл использует двухэтапный процесс сборки, при котором на первом этапе собирается приложение Go с использованием базового образа golang:1.23-alpine, а на втором этапе создается минимальный образ для запуска приложения с использованием базового образа alpine:latest. Этап сборки загружает зависимости, собирает приложение и создает исполняемый файл, который затем копируется в этап запуска. Этап запуска устанавливает переменные окружения, открывает порт и определяет команду для запуска приложения.
dev.to
Simple Golang Dockerfile with multi staged builds (reduces ~96.67% of the image size)