Как уменьшить размер изображения агента дженкинс

#jenkins

#дженкинс

Вопрос:

в течение нескольких месяцев я добавлял новые пакеты в docker jenkins agent image — который используется в GKE, и при его размере более 5 ГБ требуется облачный sdk, все kubernetes / helm / docker dependencies gradle и некоторые другие пользовательские двоичные файлы — есть предложения о том, как кто-нибудь из вас обрезает свой или вы позволяете ему увеличиваться до этого размера?

Я думал об удалении gradle, например, поскольку его используют только 2 задания, и о шаге перемещения, который переводит его в этапы предварительной загрузки и настройки, поскольку 99% других заданий не нуждаются в его использовании, а дополнительные 600 МБ для каждого задания могут добавить совсем немного.

Итак, у вас есть несколько изображений jenkins-agent или только один монолит?

Ответ №1:

Если ваша основная цель — уменьшить размер изображения, то:

  1. используйте alpine images
  2. используйте файл .dockerignore
  3. Используйте многоступенчатые сборки
  4. Установите необходимые инструменты при запуске и используйте опцию —no-cache RUN apk add --no-cache git
  5. Разделите изображение на несколько маленьких
  6. Удалите ненужные инструменты
  7. Очистить папку диспетчера пакетов rm -rf /var/lib/apt/lists/* или rm -rf /var/cache/apk/*

Предположим, я ничего не пропустил.

Комментарии:

1. да, я уже выполнял шаги 4 и 7, как предложено в dockerfile linters, согласно 5-му, я не уверен, что у вас может быть конкретный образ агента jenkins для конкретных заданий, и вам придется посмотреть многоступенчатые сборки, не уверен, как они ведут себя, когда я просто копирую более 5 двоичных файлов размером 0,5 ГБ каждый

2. я не уверен, что у вас может быть конкретное изображение агента jenkins для конкретных заданий — да, у вас может быть столько изображений, сколько вы хотите, вы даже можете вызывать разные изображения агента на разных этапах конвейера.