Аргумент сборки в Docker
Аргумент сборки передаёт значение
только на время сборки и не
остаётся в запущенном контейнере.
Его задают в файле шагов
и при необходимости меняют
флагом в команде docker build.
Основа - alpine.
Имя SITE по умолчанию
demo, на шаге сборки
оно попадает в файл.
Образ note:
FROM alpine
ARG SITE=demo
RUN echo $SITE > /note.txt
Сборка с подстановкой
lab вместо значения
по умолчанию:
docker build --build-arg SITE=lab -t note .
При запуске cat /note.txt
печатает lab - текст
записали на шаге RUN.
Переменной окружения SITE
в готовом контейнере нет:
printenv SITE ничего
не покажет.
Проверим файл и отсутствие
переменной:
docker run --rm note cat /note.txt
docker run --rm note printenv SITE
Соберите образ tag с аргументом MARK по умолчанию x, запишите его значение в /tag.txt на шаге сборки и передайте y через флаг сборки.
При запуске прочитайте /tag.txt и убедитесь, что в окружении контейнера MARK не задана.