#jenkins
#дженкинс
Вопрос:
в течение нескольких месяцев я добавлял новые пакеты в docker jenkins agent image — который используется в GKE, и при его размере более 5 ГБ требуется облачный sdk, все kubernetes / helm / docker dependencies gradle и некоторые другие пользовательские двоичные файлы — есть предложения о том, как кто-нибудь из вас обрезает свой или вы позволяете ему увеличиваться до этого размера?
Я думал об удалении gradle, например, поскольку его используют только 2 задания, и о шаге перемещения, который переводит его в этапы предварительной загрузки и настройки, поскольку 99% других заданий не нуждаются в его использовании, а дополнительные 600 МБ для каждого задания могут добавить совсем немного.
Итак, у вас есть несколько изображений jenkins-agent или только один монолит?
Ответ №1:
Если ваша основная цель — уменьшить размер изображения, то:
- используйте alpine images
- используйте файл .dockerignore
- Используйте многоступенчатые сборки
- Установите необходимые инструменты при запуске и используйте опцию —no-cache
RUN apk add --no-cache git
- Разделите изображение на несколько маленьких
- Удалите ненужные инструменты
- Очистить папку диспетчера пакетов
rm -rf /var/lib/apt/lists/*
илиrm -rf /var/cache/apk/*
Предположим, я ничего не пропустил.
Комментарии:
1. да, я уже выполнял шаги 4 и 7, как предложено в dockerfile linters, согласно 5-му, я не уверен, что у вас может быть конкретный образ агента jenkins для конкретных заданий, и вам придется посмотреть многоступенчатые сборки, не уверен, как они ведут себя, когда я просто копирую более 5 двоичных файлов размером 0,5 ГБ каждый
2. я не уверен, что у вас может быть конкретное изображение агента jenkins для конкретных заданий — да, у вас может быть столько изображений, сколько вы хотите, вы даже можете вызывать разные изображения агента на разных этапах конвейера.