Без какой инструкции Dockerfile не запустит сборку (docker build)?

«Без какой инструкции Dockerfile не запустит сборку (docker build)?» — вопрос из категории Docker, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Без инструкции FROM. Это первая и обязательная инструкция в корректном Dockerfile. Она определяет базовый образ, от которого наследуется собираемый образ. Без отправной точки сборщик не понимает, с какой файловой системы и окружения начинать.

Пример минимального валидного Dockerfile:

FROM alpine:latest
CMD ["echo", "Hello from container"]

Что произойдет без FROM:

$ docker build -t test .
[+] Building 0.0s (0/0)
ERROR: failed to solve: dockerfile parse error line 1: unknown instruction: CMD

Сборка завершится ошибкой на первой же инструкции после FROM, так как парсер Dockerfile ожидает именно ее в начале.

Исключение: Специальные образы scratch или ARG перед FROM (многостадийные сборки). Но даже scratch — это явное указание на пустой базовый образ:

FROM scratch
COPY myapp /
CMD ["/myapp"]