Как добавить базовый URL в образ Reactjs Docker? - PullRequest
0 голосов
/ 13 июня 2019

У меня есть приложение ReactJS, которое взаимодействует с бэкэнд API для получения и изменения данных. Приложение React развертывается как образ Docker из Nginx: alpine внутри кластера Kubernetes, также nginx направляет запросы API в API-интерфейс сервера. Например, в UAT API будет https://uat.mycompanydomain.com/app1/api будет направлять к бэкэнд-сервису, который не отображается снаружи.

Приложение создается в два этапа - один для разработки, два для выпуска uat & production.

На данный момент приложение получает бэкэнд api_url (prod-> https://mycompanydomain.com/app1/api) в качестве переменной среды во время сборки образа Docker и записывается в само изображение. Потому что эту переменную env нельзя было переопределить, используя env, переданный как переменные Configmap или env во время развертывания. Внутренне приложение использует REACT_APP_API_URL для считывания значения.

Каков наилучший способ динамической передачи api_url приложению, чтобы приложение работало с использованием этой переменной независимо от того, где оно развернуто.

PS: приложение имеет переменную homepage, установленную в package.json с подкаталогом, в котором оно развернуто.

1 Ответ

0 голосов
/ 13 июня 2019

Вы можете использовать ARG в вашем Dockerfile

ARG REACT_APP_API_URL=localhost
ENV REACT_APP_API_URL=$REACT_APP_API_URL

, а затем,

docker build \
  --build-arg REACT_APP_API_URL=$REACT_APP_API_URL .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...