Аргумент и переменная в Docker
Аргумент сборки можно записать
в переменную окружения, и тогда
значение останется при запуске.
Сначала его подставляют на шаге
сборки, затем фиксируют строкой
ENV в образе.
Основа - alpine.
При старте контейнер выведет
значение SITE через
printenv.
Файл шагов для greet:
FROM alpine
ARG SITE=demo
ENV SITE=$SITE
CMD ["printenv", "SITE"]
Сборка с --build-arg SITE=lab
запишет lab в переменную
окружения образа:
docker build --build-arg SITE=lab -t greet .
Запуск без дополнительных слов
печатает lab уже из
переменной, а не из временного
аргумента сборки.
Проверим старт:
docker run --rm greet
Соберите образ room с аргументом ROOM по умолчанию hall, перенесите его в переменную окружения и задайте печать этой переменной при старте.
Соберите с ROOM=desk через флаг и убедитесь, что при запуске на экране desk.