Ответ
Без инструкции 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"]