В Dockerfile переменные ARG и ENV служат для разных целей:
Чем отличаются переменные ARG и ENV в Dockerfile и каким образом они используются?
В Dockerfile переменные ARG и ENV служат для разных целей:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Dockerfile переменные ARG и ENV служат для разных целей:
ARG— это переменные, доступные только во время сборки образа (build time). Их можно задавать при сборке черезdocker build --build-arg. После сборки они не сохраняются в образе.ENV— это переменные окружения, которые сохраняются в образе и доступны во время выполнения контейнера (runtime).
Пример:
ARG VERSION=1.0
FROM python:${VERSION}
ENV APP_ENV=production
Здесь VERSION задаёт версию Python на этапе сборки, а APP_ENV будет доступна внутри контейнера при запуске.
Итого:
ARG— для параметров сборки, не сохраняются в конечном образе.ENV— для переменных окружения, доступных в контейнере после запуска.