Ответ 1
Вы попадаете в переменную подстановки docker-compose
, которая хорошо документирована здесь:
Поддерживаются как $VARIABLE, так и ${VARIABLE} синтаксис. Расширенные функции стиля оболочки, такие как ${VARIABLE-default} и ${VARIABLE/foo/bar}, не поддерживаются.
Вы можете использовать знак $$ (знак двойного доллара), когда вашей конфигурации требуется буквальный знак доллара. Это также мешает Compose интерполировать значение, поэтому $$ позволяет ссылаться на переменные среды, которые вы не хотите обрабатывать с помощью Compose.
docker-compose
написан на Python, как вы видите на github, механизм удвоения для получения исходного значения специальных символов может можно найти во многих программах, мне нужно было использовать это самостоятельно, в то время как программирование, еще в 1984 году.