Выбор ответа Junior Docker для разработчика обновлено
Зачем .dockerignore
Вопрос
Зачем в проекте с COPY . . в Dockerfile нужен файл .dockerignore со строками node_modules, .git, .env?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Исключает файлы из контекста: сборка быстрее, в образ не попадут секреты. Перед сборкой Docker отправляет демону весь контекст.
Варианты ответа
- Он ускоряет запуск контейнера, уменьшая слой с файлами
- Исключает файлы из контекста: сборка быстрее, в образ не попадут секретыправильный ответ
- Без него Docker не найдёт Dockerfile в корне контекста
- Он скрывает файлы от
docker psиdocker inspect
Разбор
Перед сборкой Docker отправляет демону весь контекст. Большие node_modules и .git замедляют это, а COPY . . скопирует в образ всё подряд, включая .env с секретами. Локальные node_modules с нативными модулями под macOS ещё и сломают приложение в Linux-контейнере.
- На скорость запуска контейнера
.dockerignoreне влияет. - Dockerfile находится и без этого файла.
docker psпоказывает контейнеры, а не файлы.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.