与之相对较新的反应。我有一个在本地docker中运行良好的应用程序。在启动Docker容器之前,我通过将其导出到环境中来填充一堆REACT_APP_环境变量。
现在,我正在尝试通过运行yarn build然后提供服务来将其部署到kubernetes pod中。通过查看printenv
,我可以看到Pod本身可以使用环境变量,但是应用程序似乎并没有选择它们。
为React-App的生产版本提供服务时是否有一些特别之处,以使其能够查看我缺少的导出环境变量?
出于安全原因,我不想将.env文件嵌入到构建的docker映像中,因此我希望通过Serve运行react build仍然可以选择通过kubernetes机密设置的导出的REACT_APP_环境变量。
答案 0 :(得分:1)
因此,显然,每当您使用npm构建React应用程序时,都会生成对任何环境变量一无所知的静态文件,您可以尝试在运行时使用Kubernetes注入这些文件。
下面的文章很好地解释了这一点以及为什么他们选择将环境变量附加到JavaScript窗口对象,因为它具有应用程序作用域。
Making a React application container environment-aware at Kubernetes deployment