build) по инструкции описаной в докерфайле
Там устанавливаются зависимости и запускается команда билд приложения.
Если приложение требует для работы переменную(зависит от переменной), а на этапе билда образа(docker build) мы ее не передали какое значение будет у переменной в сбилженом приложении?
ARG и ENV я не указываю в докерфайле, я хочу их указать при старте контейнера
Концепция такая - ARG существуют только на этапе сборки, ENV же добавляются в метаданные образа, и автоматически устанавливаются при запуске контейнера. ENV также можно переопределить во время запуска, с помощью поля environment в docker-compose.yml, либо аргумента -e у docker run
И если собирается образ из нескольких стейджей, то переменные и аргументы нужно определять снова в каждом стейдже заново?
ENV да. Но без понятия, зачем их вообще определять дважды
Вероятно, чтобы не тащить в финальный образ лишние ENV'ы А ещё, можно сделать ARG до FROM'а и во FROM'е использовать образ, который будет задаваться переменной, что бывает удобно. Получается ARG - переменная сборки, а ENV - переменная окружения, а окружений в мультистейдже понятно, что несколько
А шаги задания переменных и аргементов не отображаются в прогрессе?
У меня почему то переменная не пробросилась при старте контейнера..И первый вопрос такой) не видно что бы на этапе сборки образа декларировалась переменная. Она там должна отображаться?
Обсуждают сегодня