removespread / Docker
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 о контексте сборки.

Шаг 1 из 5