Можно ли настроить приложение React на использование переменных среды контейнера в Kubernetes? - PullRequest
1 голос
/ 15 января 2020

Для начала - предположим, у нас есть приложение React. Мы хотим построить его и развернуть в 3 средах - dev, test и production. Как и каждому внешнему приложению, оно должно вызывать некоторые API. Адреса API будут различаться в зависимости от среды. Поэтому они должны храниться как переменные среды.

Как и любой современный, прогрессивный разработчик, мы хотим использовать контейнеры. В частности, Kubernetes.

Мы хотим построить наше веб-приложение и развернуть его на кластере K8S. Образ контейнера должен быть собран и отчасти запечатан для изменений, а затем перед внедрением в каждую конкретную среду должны быть введены переменные.

Но, похоже, здесь есть одна большая невозможность. Например, когда речь идет о приложениях. NET, когда мы скомпилировали .dll, он читает файл конфигурации во время выполнения. Это не относится к React. После того, как мы сгенерируем сборку, у нас есть только stati c файлы. Переменные изменяются до значений c в процессе сборки приложения React. Кажется, нет возможности обновить его после этого момента - или это?

Ответы [ 2 ]

1 голос
/ 15 января 2020

То, как вы пытаетесь решить свою проблему, неверно.

Вам не нужно ничего знать об адресах серверных служб в вашем приложении реагирования. Только внешний сервер / шлюз, который обслуживает ваше реагирующее приложение, должен знать о серверных службах. Любой запрос от приложения реагирования должен передаваться через шлюз.

См. Шаблон шлюза API - https://microservices.io/patterns/apigateway.html

0 голосов
/ 15 января 2020

Вы можете использовать config map , чтобы сохранить адрес конечной точки API и указать его как переменную среды в модуле.

Если вы хотите изменить некоторые значения во время работы модуля, вы можете смонтировать карту конфигурации и любые изменения в ней будут синхронизированы в модуле

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...