В приведенном выше примере "var1" и "var2" будут отправлены в среду сборки.
Примечание: любые переменные env (заданные с помощью блока environment), которые имеют то же имя, что и переменная args, переопределяют эту переменную.
Ответ 3
Теперь docker-compose поддерживает подстановку переменных.
Compose использует значения переменных из среды оболочки, в которой выполняется docker-compose. Например, предположим, что оболочка содержит POSTGRES_VERSION=9.3, и вы поставляете эту конфигурацию в файле docker-compose.yml:
db:
image: "postgres:${POSTGRES_VERSION}"
Когда вы запускаете docker-compose up с этой конфигурацией, Compose ищет переменную среды POSTGRES_VERSION в оболочке и заменяет ее значение. В этом примере Compose разрешает image до postgres:9.3 перед запуском конфигурации.