Как пользоваться golang godotenv и viper в docker?
Я использую godotenv и goviper для работы с переменными окружения. Локально все работает нормально. Как это контейнировать? В docker-compose прописал :
env_file:
- .env
Но когда запускаю контейнер. То godotenv не находит .env файл в контейнере и выкидывает ошибку.
Я могу скопировать .env и конфиг файл go-viper, но можно ли обойтись без этого?
Можно вообще не использовать ни godotenv, ни go-viper. и просто в dockerfile прописать переменные окружения, но как потом работать над кодом локально?
То docker инжектит этот файл как переменные окружения, а не как файл. Т.е. ваше приложение должно читать переменные не из файла, а из переменных окружения. Ну либо вы через volumes можете покинуть файл .env, тогда не придётся изменять код приложения
А это можно делать без копирования .env и config файла viper в контейнер? Приложение считывает эти данные из файлов, а из-за того что этих файлов нет в контейнере, он выкидывает исключение. Я просто не знаю как с godotenv и goviper работают на реальных проектах, а как такого хорошего решения не нашел. Я могу скопировать эти два файла в контейнер. Просто где то читал, что это не очень то и безопасно.
Paark, вы можете на сервере положить файл .env и через монтирование (volumes) его прокидывать, т.е. файл будет попадать в контейнер не при сборке, а при запуске