А подскажите, есть какой-то способ в го передавать сложные структуры через env? Или может быть какой-то другой подход конфигурирования.
В чем дело - написан сервис с большим развесистым конфигом.
Используется viper, те он может читать как файл , так и энв переменные. Это все оч легко, если в конфиге одномерная структура из типа ini - ключ-значение. Но если в конфиге лежат массивы структур, то уже не очень ясно, как это вытащить в env.
Некоторое время задавал процитированный вопрос - как быть с большим конфиг файлом в проекте (файлом, который содержит много сложных структур) и непонятно, как такой конфиг поставлять через переменные окружения при использовании viper.
Вообщем для себя сделал вот такой фикс - вручную проверяем переменную окружения CONFIG и если она задана, пишем ее содержимое в отдельный файл, и переучиваем viper читать этот файл.
Так мы можем поставлять сложный конфиг через энв, также сохранена совместимость с всей функциональностью viper, которая ранее использовалась.
https://play.golang.org/p/ec_uczgNuQ4