Sobes.tech
Middle+
34

Жақсы жазылған Docker конфигурациясы деп нені түсінесіз, ал нашар деген не? Қандай антипаттерндер бар?

Сұралған компаниялар
AmexDev

AI-дан жауап

sobes.tech AI

Хорошо написанная конфигурация Docker должна быть:

  • Простая и понятная — минимальное количество слоёв, читаемый Dockerfile.
  • Оптимизированная по размеру — использовать легковесные базовые образы, удалять временные файлы.
  • Идемпотентная — повторный билд даёт тот же результат.
  • Безопасная — не хранить секреты в образе, использовать переменные окружения.
  • Кэшируемая — слои, которые редко меняются, должны идти выше для ускорения сборки.

Антипаттерны:

  • Использование latest без фиксации версии образа.
  • Много RUN-команд, которые можно объединить в одну.
  • Хранение секретов и конфиденциальных данных в Dockerfile.
  • Копирование ненужных файлов в образ.
  • Отсутствие .dockerignore, что приводит к большому контексту сборки.

Пример плохого Dockerfile:

FROM ubuntu
RUN apt-get update
RUN apt-get install -y curl
COPY . /app
RUN rm -rf /app/tmp

Лучше объединить RUN и добавить .dockerignore для исключения лишних файлов.