.dockerignore не может включать файлы в подкаталоги с шаблоном расширения! ** / *. - PullRequest
0 голосов
/ 14 июня 2019

У меня проблемы с файлом .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

Что здесь происходит?

1 Ответ

0 голосов
/ 14 июня 2019

Я обнаружил несколько проблем, в которых упоминается именно эта проблема, например:

Шаблоны исключений в .dockerignore не поддерживают каталоги с подстановочными знаками dockerignore не относится к "специальному символу подстановки** " (комментарий)

И кажется, что это не будет исправлено в ближайшее время: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...