.dockerignore — файл с правилами исключения файлов и папок из Docker build context. Он уменьшает размер контекста сборки и image, ускоряет docker build и помогает не скопировать в image лишние локальные файлы или секреты.
.dockerignore — файл с правилами исключения файлов и папок из Docker build context. Он уменьшает размер контекста сборки и image, ускоряет docker build и помогает не скопировать в image лишние локальные файлы или секреты.
Что такое build context
Когда выполняется команда docker build ., Docker использует текущую папку как build context. Файлы из этого контекста могут быть доступны инструкциям COPY и ADD в Dockerfile.
Зачем нужен .dockerignore
Файл .dockerignore определяет, что не нужно отправлять в build context. Это уменьшает объём передаваемых файлов, ускоряет сборку, улучшает кэширование слоёв и снижает риск случайно добавить в image локальные секреты или артефакты разработки.
Пример файла
.git
.venv
__pycache__/
*.pyc
*.log
.env
node_modules/
dist/
coverage/Что обычно исключают
папки виртуального окружения, например .venv;
кэш, временные файлы и логи;
папку .git;
локальные файлы конфигурации и секреты, например .env;
артефакты сборки, тестов и покрытия кода;
зависимости, которые будут устанавливаться внутри image, например локальный node_modules.
Важно про секреты
Добавление .env в .dockerignore снижает риск его случайного копирования, но секреты в любом случае не следует встраивать в Docker image. Для них используют переменные окружения, secrets manager или механизмы секретов оркестратора.
Как ответить на собеседовании
.dockerignore похож на .gitignore, но применяется к Docker build context. Я добавляю туда кэш, виртуальное окружение, логи, .git, локальные секреты и артефакты сборки, чтобы image был меньше, сборка была быстрее, а лишние файлы не попадали в контейнер.
Оцени свой прогресс