将基本URL添加到Reactjs Docker映像的方法是什么

时间:2019-06-13 07:31:00

标签: reactjs docker

我有一个ReactJS应用程序,该应用程序与后端api对话以获取和修改数据。 React应用程序是从Kubernetes集群中的Nginx:alpine作为Docker映像部署的,而且,nginx将api请求路由到后端api。例如,在uat中,api将https://uat.mycompanydomain.com/app1/api路由到未直接暴露在外部的后端服务。

应用的构建分为两个阶段-一个阶段用于开发,两个阶段用于uat和生产版本。

截至目前,该应用程序在Docker映像构建期间将后端api_url(prod-> https://mycompanydomain.com/app1/api)作为环境变量接收,并被刻录到映像本身中。因为,在部署期间无法使用作为Configmapenv变量传递的env覆盖此env变量。该应用程序内部使用REACT_APP_API_URL读取值。

api_url动态传递给应用程序的最佳方法是什么,以使应用程序使用此变量而不管其部署在哪里。

PS:该应用在homepage中设置了package.json变量,并带有部署子目录。

1 个答案:

答案 0 :(得分:0)

您可以在Dockerfile中使用ARG

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 .