Как пользоваться
- Оставьте отмеченными «Файлы Docker и Git» и «Секреты»: они полезны почти в любом проекте.
- Отметьте свой язык и при необходимости редакторы и системные файлы.
- Добавьте свои шаблоны, например папку с тестовыми данными.
- Сохраните результат как
.dockerignoreв корне контекста сборки, обычно рядом сDockerfile.
Как это работает
Выбранные списки объединяются в постоянном порядке: Docker и Git, секреты, языки, редакторы, системные файлы и в конце ваши шаблоны. Шаблон, который уже встречался в предыдущей группе, не повторяется, а опустевшая из-за этого группа пропускается.
Docker сравнивает каждую строку с путями относительно корня контекста. * совпадает в пределах одной папки, ** — с любым числом папок, а ! возвращает ранее исключённые файлы.
Пример
Выбор по умолчанию (Docker и Git, секреты, Node.js, системные файлы) начинается так:
# Docker and Git
.git
.gitignore
.dockerignore
Dockerfile*
docker-compose*.yml
compose*.yaml
**/*.log
# Secrets
.env
.env.*
!.env.example
**/*.pem
**/*.key
Дальше идут **/node_modules, логи npm и pnpm, coverage, dist, **/.DS_Store и **/Thumbs.db. Заголовки групп в файле — комментарии на английском, на работу Docker они не влияют.
Советы
- Исключать
node_modulesнужно не только ради скорости: зависимости, установленные на вашем компьютере, могут быть собраны под другую систему. Ставьте их внутри образа. - Если Dockerfile копирует готовый файл, например
target/app.jarилиdist/, снимите отметку с этой группы или добавьте исключение через!. - После крупных изменений выполните
docker build --no-cache .и убедитесь, что образ собирается без исключённых файлов.