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 для исключения лишних файлов.