n1ro°
RU

Текст и данные · Инструкция

Как работает область видимости ARG в Dockerfile

Глобальный `ARG`, объявленный до первого `FROM`, можно использовать для подстановки в `FROM`. Но этот ARG находится вне

Редакция N1RO · Проверено

Короткий ответ

`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.