Текст и данные · Инструкция
Как работает область видимости ARG в Dockerfile
Глобальный `ARG`, объявленный до первого `FROM`, можно использовать для подстановки в `FROM`. Но этот ARG находится вне
Короткий ответ
`ARG VERSION=latest` перед `FROM` может участвовать в `FROM image:${VERSION}`. Если затем нужен `${VERSION}` в `RUN`, добавьте `ARG VERSION` после `FROM`.
Как это работает
Область видимости Dockerfile строится по stages. Объявление перед `FROM` помогает выбрать базовый image, но не делает переменную автоматически доступной всем последующим инструкциям каждого stage.
Примеры
- `ARG VERSION=3.20 FROM alpine:${VERSION} ARG VERSION RUN echo "$VERSION"`
- В multi-stage Dockerfile нужный ARG при необходимости объявляют в тех stages, где его читают.
Ограничения
Не используйте build args для секретов: значения могут оказаться в метаданных или истории сборки. ARG и ENV различаются по назначению и времени жизни.
Что учитывать
Не используйте build args для секретов: значения могут оказаться в метаданных или истории сборки. ARG и ENV различаются по назначению и времени жизни.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Dockerfile reference). Пример и формулировки — редакция N1RO на 2026-09-18.