对于Node服务器,我可以使用is-docker
软件包确定它们是否在Docker容器中运行。这显然不适用于在浏览器中运行的React应用程序,而不适用于使fs
不可用的命令行。还有什么其他方法可以让Web应用程序确定它是否在Docker容器中运行?
答案 0 :(得分:0)
我注意到create-react-app
supports injecting environment variables在process.env
文件的构建期间进入了.env
。因此,我创建了一个包含.env.development
的{{1}}文件和一个包含REACT_APP_DOCKERENV=false
的{{1}}文件。然后分别在运行.env.production
和REACT_APP_DOCKERENV=true
时注入这些变量。
当然,这假设我的开发版本始终在本地执行,而生产版本始终在适用于我的特定场景的Docker中执行。