junior
Что такое .dockerignore?
.dockerignore — это файл, определяющий, какие файлы и директории нужно исключить из контекста сборки Docker. Он работает аналогично .gitignore.
При выполнении docker build . Docker отправляет весь контекст сборки (содержимое указанной директории) демону Docker. Если в проекте есть большие или ненужные файлы, это замедляет сборку и может привести к попаданию конфиденциальных данных в образ.
Пример .dockerignore для Java-проекта
Пример
# Результаты сборки
target/
build/
*.jar
*.war
# IDE
.idea/
*.iml
.vscode/
.settings/
.project
.classpath
# Git
.git
.gitignore
# Docker
Dockerfile
docker-compose.yml
.dockerignore
# Документация
*.md
docs/
# Логи
*.log
# Переменные окружения
.env
.env.*
Зачем нужен .dockerignore
- Ускоряет сборку (меньше файлов отправляется демону)
- Предотвращает попадание конфиденциальных файлов (
.env, ключи) в образ - Исключает ненужные файлы, которые могут инвалидировать кэш слоёв
На собеседовании: объясните, что .dockerignore исключает файлы из контекста сборки (а не из образа напрямую). Это ускоряет сборку и предотвращает утечку секретов. Приведите пример: без .dockerignore директория
.gitпопадёт в контекст, что и замедлит сборку, и может попасть в образ черезCOPY . ..