У меня проблемы с файлом .dockerignore
. Это моя структура проекта:
file.sh
file.js
file.go
file.py
subdir/
file2.go
file2.py
.dockerignore
Dockerfile
Согласно документации .dockerignore
:
(...) вы можете указать, какие файлы включать в контекст, а не какие исключать. Для этого укажите * в качестве первого шаблона, а затем один или несколько! шаблоны исключений.
И
Строки начинающиеся с! (восклицательный знак) может быть использован для исключения исключений.
Наконец:
Docker также поддерживает специальную подстановочную строку **, которая соответствует любому количеству каталогов (включая ноль). Например, ** / *. Go исключит все файлы, заканчивающиеся на .go, которые находятся во всех каталогах, включая корень контекста сборки.
Исходя из этого, это мой .dockerignore
файл:
# ignore everything
*
# whitelist
# ---------
# python files
!**/*.py
Когда я собираю и запускаю контейнер и проверяю файлы, я получаю следующее:
file.py
Каталог subdir
отсутствует, subdir/file2.py
должен быть включен. Это работает, если я добавлю !subdir/**/.py
к своему .dockerignore
, но идея заключается в том, чтобы включить любой файл .py
в любой подкаталог.
Это структура файла, которая должна присутствовать в контейнере:
file.py
subdir/
file2.py
Что здесь происходит?