Ответ
Директива FROM в Dockerfile задает базовый образ, на основе которого начинается построение нового Docker-образа. Это обязательная и, как правило, первая инструкция в файле (после возможных инструкций ARG).
Пример:
# Использование официального легковесного образа Java
FROM openjdk:17-jdk-slim
# Последующие инструкции добавляют приложение в этот базовый образ
COPY ./app.jar /app/app.jar
CMD ["java", "-jar", "/app/app.jar"]
Практическое значение и нюансы:
- Основа сборки: Все последующие инструкции (
RUN,COPY,CMD) применяются поверх этого базового слоя. - Указание версии: Рекомендуется использовать конкретный тег (например,
node:18-alpine) вместоlatestдля воспроизводимости сборок. - Многоэтапные сборки: В одном Dockerfile может быть несколько инструкций
FROMдля создания легковесных финальных образов (multi-stage builds). - Минимальный образ:
FROM scratchуказывает на пустой базовый образ. Это используется для создания минимальных образов, содержащих только статически скомпилированный бинарный файл.