Перейти к содержимому
Максиметер

🔥 Как ускорить docker build и сократить размер образа

🔥 Как ускорить docker build и сократить размер образа Иногда docker build тянется вечность, а итоговый образ весит больше, чем база данных 🐘. Разбираемся, как ускорить сборку и оптимизировать размер образа без потери функциональности. 1. Используй multistage build Разделяй стадии сборки и финальный образ. Это особенно важно при компиляции (Go, Java, Node.js): # Стадия 1: билд FROM golang:1.20 as builder WORKDIR /app COPY . . RUN go build -o app # Стадия 2: минимальный runtime FROM alpine:latest COPY --from=builder /app/app /usr/local/bin/app ENTRYPOINT ["app"] Образ получается меньше 10 МБ! 2. Минимизируй base image Используй alpine, distroless, scratch, если не нужен полноценный дистрибутив: FROM python:3.12-slim Или вообще: FROM scratch 3. Правильно расставляй COPY и RUN Кешируй слои — сначала зависимости, потом исходники: COPY requirements.txt . RUN pip install -r requirements.txt COPY . . Так pip install не будет повторяться при каждом изменении исходников. 4. Убирай мусор и временные файлы После установки пакетов — чисти кэш: RUN apt-get update && apt-get install -y ... \ && rm -rf /var/lib/apt/lists/* 5. Используй .dockerignore Иначе в билд попадут node_modules, .git, логи и прочее: .git node_modules *.log Вывод: Минимизация образа — это не только про размер, но и про безопасность (меньше surface area), скорость CI/CD, стабильность. И не забывай — docker build тоже надо профилировать. #devops #docker #ci #optimization Подпишись 👉 @i_DevOps

780 просмотров

Канал в каталоге Максиметера

3 014 подписчиков · IT и технологии

Ещё по теме «IT и технологии»

Читать дальше

Два раза в неделю свежие посты этого канала — на почту и в личную ленту. Без повторного поиска канала вручную.