DOCKER · МОДУЛЬ 02 · УРОК 2
Контекст сборки и .dockerignore
20 мин
Разберитесь, что означает последняя точка в docker build и как исключить лишние файлы.
Dockerfile и контекст~20 мин
После урока вы сможете
- Выбирать контекст отдельно от Dockerfile
- Писать правила .dockerignore
- Диагностировать пропавшие и лишние файлы
Последний аргумент — набор доступных файлов
В команде docker build -t qa-api:v1 . последняя точка выбирает текущую папку как контекст. Это набор файлов, к которым может обращаться сборка. Имя образа задаёт -t; оно никак не выбирает папку с исходниками.
project/
app.py
docker/
Dockerfile
# Выполняется из project:
docker build -f docker/Dockerfile -t qa-api:v1 .
В этом примере Dockerfile лежит в подпапке, но COPY app.py . всё равно ищет app.py в корне контекста project. Параметр -f выбирает рецепт, последний аргумент — доступные материалы. Эти два пути отвечают на разные вопросы.
Если заменить последний аргумент на docker/, файл project/app.py окажется вне выбранного контекста. Исправлять это через COPY ../app.py не нужно: выберите правильный контекст и проверьте путь источника. Docker Docs о контексте сборки.