Обходной путь к запуску докера «--env-file» предоставленный файл не оценивается должным образом

Моя текущая настройка для запуска контейнера докеров находится в следующих строках:У меня есть файл ---- +: = 0 =: + ---- :# Основнойэкспорт PRIVATE_IP = \ `echo localhost \`экспорт MONGODB_HOST = "$ PRIVATE_IP"экспорт MONGODB_URL = "mongodb: //$ MONGODB_HOST: 27017 /разработка"В моем служебном файле (выскочка) я использую этот файл ---- +: = 1 =: + ----Затем я вызываю ---- +: = 2 =: + ---- с несколькими ---- +: = 3 =: + ---- для каждой из переменных среды, которые мне нужны внутри контейнера.В этом случае я бы назвал что-то вроде: ---- +: = 4 =: + ----Тогда я ожидал бы, что ---- +: = 5 =: + ---- внутри контейнера будет равно ---- +: = 6 =: + ---- .Обратите внимание, что на самом деле ---- +: = 7 =: + ---- заменяется на ---- +: = 8 =: + ---- в API Amazon для фактического ---- +:= 9 =: + ---- .Это становится немного громоздким, когда у вас появляется все больше и больше переменных среды, которые вам нужно передать своему контейнеру.Здесь есть хороший момент, который заключается в том, что переменные среды должны быть разрешены во время выполнения , например, с помощью вызова ---- +: = 10 =: + ---- или путем ссылки на другие переменные env.Решение, которое я надеялся использовать:вызов ---- +: = 11 =: + ---- с параметром ---- +: = 12 =: + ----, например:# ОсновнойPRIVATE_IP = \ `эхо локального хоста \`MONGODB_HOST = "$ PRIVATE_IP"MONGODB_URL = "mongodb: //$ MONGODB_HOST: 27017 /разработка"Тогда моя команда ---- +: = 13 =: + ---- будет значительно сокращена до ---- +: = 14 =: + ---- (имейте в виду, обычно у меня есть около 12-15 переменных окружения.Здесь я столкнулся со своей проблемой, заключающейся в том, что внутри контейнера ни одна из переменных не разрешается должным образом.Вместо этого я получаю:PRIVATE_IP = `echo localhost`MONGODB_HOST = "$ PRIVATE_IP"MONGODB_URL = "mongodb: //$ MONGODB_HOST: 27017 /разработка"Я мог бы обойти это, выполнив следующие действия:Получение файла ---- +: = 15 =: + ---- .Создание файла, содержащего только имена нужных мне переменных (это означает, что докер будет искать их в среде).Затем вызов ---- +: = 16 =: + ---- с этим файлом в качестве аргумента ---- +: = 17 =: + ---- .Это сработало бы, но означало бы, что мне нужно было бы поддерживать два файла вместо одного, и это действительно не было бы таким большим улучшением текущей ситуации.Я бы предпочел, чтобы переменные разрешались так, как ожидалось.Самый близкий к моему вопрос, который я смог найти: 12- факторный подход к конфигурации с Docker
7 голосов | спросил rikonor 20 SatEurope/Moscow2014-12-20T21:22:22+03:00Europe/Moscow12bEurope/MoscowSat, 20 Dec 2014 21:22:22 +0300 2014, 21:22:22

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132