Эффективное создание образов Docker с использованием предварительно кэшированных зависимостей
При создании образов Docker крайне важно минимизировать время сборки. Одна из стратегий — кэшировать зависимости. Однако для этого необходимо сначала создать зависимости, что может занять много времени.
Есть ли способ предварительно создать несколько зависимостей, перечисленных в файле go.mod?
Ответ заключается в используя механизмы кэширования Docker. Предлагаемая структура Dockerfile включает важнейший уровень кэширования:
FROM scratch COPY --from=build /out/example /
Этот шаг копирует собранный исполняемый файл с промежуточного этапа сборки в окончательный образ. Однако ключевой ингредиент находится на этапе сборки:
RUN --mount=type=cache,target=/root/.cache/go-build go build -o /out/example .
Эта команда монтирует каталог кэша go build по умолчанию (/root/.cache/go-build) и выполняет команду go build. Кэш гарантирует, что зависимости загружаются и компилируются только один раз, что значительно сокращает время сборки последующих сборок.
Чтобы включить кеширование, необходимо установить для переменной среды DOCKER_BUILDKIT значение 1:
DOCKER_BUILDKIT=1 docker build -t myimage .
Следуя этим шагам, вы можете предварительно собрать все зависимости в go.mod и используйте кеширование для оптимизации сборки образов Docker.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3