Gymterview
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 . ..