Относительно новичок в работе с React. У меня есть приложение, которое отлично работает в локальном докере. Я заполняю кучу переменных среды REACT_APP_, экспортируя их в среду перед запуском контейнера докеров.
Теперь я пытаюсь развернуть это в модуле kubernetes, запустив сборку пряжи, а затем обслуживая сборку. Я вижу, что переменные среды доступны в самом модуле, посмотрев на printenv
, но приложение, похоже, их не улавливает.
Есть ли что-то особенное в обслуживании производственной сборки приложения-реакции, чтобы заставить его видеть экспортированные переменные среды, которые мне не хватает?
Я не хочу встраивать файл .env в созданный образ докера по соображениям безопасности, поэтому я надеюсь, что запуск сборки реакции через serve может по-прежнему получать экспортированные переменные среды REACT_APP_, которые устанавливаются с помощью секретов kubernetes.
Таким образом, очевидно, что всякий раз, когда вы создаете приложение для реагирования с помощью npm, создаются статические файлы, которые ничего не знают о каких-либо переменных среды, которые вы можете попытаться ввести во время выполнения с помощью Kubernetes.
В статье ниже хорошо объясняется это и почему они решили присоединить переменные среды к объекту окна JavaScript, поскольку для него доступна область действия приложения.
Обеспечение осведомленности о среде контейнера приложения React при развертывании Kubernetes