对于运行在 Node 服务器上的应用,我可以使用 is-docker 包来判断它们是否运行在 Docker 容器中。但是,这种方法无法适用于运行在浏览器中的 React 应用,因为在浏览器中无法访问 fs。那么,有没有其他方法可以让 web 应用判断自己是否运行在 Docker 容器中呢?
我注意到create-react-app支持注入环境变量到process.env中,使用.env文件进行构建。因此,我创建了一个包含REACT_APP_DOCKERENV=false的.env.development文件,以及一个包含REACT_APP_DOCKERENV=true的.env.production文件。这些变量在分别运行yarn start和yarn build时被注入。当然,这假设我的开发构建总是在本地执行,而生产构建总是在Docker中执行,这在我的特定场景下起作用。
serve
来提供应用程序。当用户浏览应用程序时,在用户的浏览器中执行的构建代码将不再轻松地访问有关其正在运行的服务器的信息。特别是当涉及到识别服务器是否已经docker化时。 - Christian Iviceviclocalhost
还是在多容器设置中的生产环境中使用docker-compose
,我希望应用程序连接到链接服务器(通过docker-compose
),而不是纯粹的localhost
。 - Christian Ivicevic