Программирование {BookFlow}: post #4268 — TG.ME

🔥 Ускоряем сборку Docker-образов: слои и кэш - наши друзья

Когда сборка Dockerfile занимает минуты - это мешает dev-loop'у. А ведь можно сильно ускориться с парой простых правил 👇


🧠 Основные принципы ускорения:

1. Максимально используем кэш
Docker кэширует каждый слой. Если слой не изменился - пересобирать не будет.

Сначала COPY зависимости, потом остальной код:


COPY requirements.txt .
RUN pip install -r requirements.txt # кэшируется

COPY . . # некэшируемо при любом изменении в коде


2. Объединяем RUN-команды
Меньше слоёв - быстрее сборка и push:


RUN apt update && apt install -y curl git \
&& rm -rf /var/lib/apt/lists/*


3. .dockerignore
Убедись, что не копируешь лишние файлы (например, .git/, tests/, node_modules/):


.git
node_modules
*.log
__pycache__/


4. Меньше COPY, больше multi-stage
Разделяй сборку и runtime - не таскай компиляторы в прод:


FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o app

FROM debian:bullseye-slim
COPY --from=builder /app/app /usr/bin/app
CMD ["app"]


5. Кэшируй pip/npm/go-пакеты
→ в Dockerfile сначала копируй файл зависимостей, ставь пакеты, только потом - весь код проекта.


📌 Используй эти практики, чтобы ускорить CI/CD, локальную сборку и деплой. Чем меньше слоёв изменяется - тем быстрее весь процесс.

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
👍3❤1🔥1🥰1
August 14, 2026 1.1K 20