Многие Docker-сборки занимают 5–10 минут
даже если вы изменили одну строку кода.
Причина - неправильный порядок инструкций в Dockerfile.
🚫 Плохой Dockerfile
COPY . /app
RUN npm install
RUN npm run build
Если меняется любой файл в коде →
слой
COPY . меняется.Docker сбрасывает кэш и заново запускает:
• npm install
• build
Даже если зависимости не менялись.
⏳ В итоге - каждая сборка почти с нуля.
✅ Правильный Dockerfile
COPY package*.json /app
RUN npm install
COPY . /app
RUN npm run build
Теперь Docker работает умнее:
если изменился только код:
• слой
npm install берётся из кэша • пересобирается только build
⚡ Время сборки
До - ~10 минут
После - ~30 секунд
📌 Золотое правило Dockerfile
Сначала кладём то, что редко меняется:
• package.json
• package-lock.json
• requirements.txt
• go.mod
А часто меняющееся - в конце:
• исходный код
• конфиги
• assets
🚀 Результат
• быстрее сборки Docker
• быстрее CI/CD
• быстрее деплой
Иногда достаточно просто поменять порядок строк в Dockerfile.
🎯Полезные DEVOPS ресурсы 🚀 Max
Docker в телеграм
