reactjs - React & Webpack & Docker:在运行时将环境注入到 docker-container
问题描述
您好尝试使用 Docker 和 Webpack 部署我的 React-App。我的问题是我想在运行时注入我的环境变量。
如果我运行我的 docker,我希望 env ENV_TEST 具有值 testValue
docker run -p 8080:8080 -e ENV_TEST=testValue client
Webpack 文件:
new webpack.DefinePlugin({
"process.env.ENV_TEST": JSON.stringify(
process.env.ENV_TEST
),
}),
码头工人文件:
ENV ENV_TEST=default
反应:
console.log(process.env.ENV_TEST)
//-->default
目前我的 ENV_TEST 具有默认值(从构建时形成 Docker 文件)。如果我没有在我的 Docker-File 中定义值,则 ENV_TEST 是未定义的。如果我运行我的 docker 容器,-e ENV_TEST=testValue
我想用值 testValue 覆盖默认值。
感谢任何帮助
解决方案
您不能在运行时覆盖此 env 变量,因为它的运行时是客户端浏览器(我猜它是对标签的反应应用程序死亡)。
它的值在构建时被覆盖,并且从那里该值被硬编码在 js 包中。
您可以将动态值传递给 html,并让您的应用程序从那里读取它。
###编辑
// index.html
<html>
...
<body>
<script>
window.TEST_ENV = '<%= EJVaraibale %>';
</script>
</body>
</html>
推荐阅读
- python-3.x - python使用函数而不等待它的返回(即开即弃)?
- c++ - 使用 C++ 动态分配结构的多维数组
- ios - 如何让 iOS 在 tableView 上显示删除按钮,但不允许从右侧完全滑动删除
- java - 如何使用 Selenium 和 Java 选择第一个自动建议
- r - 连接表,根据另一列中的值移动或重命名现有列
- mysql - 访问同一张表,不同的参数
- react-native - 从另一个组件调用函数 react-native
- python - 如何在 cmd 行中使用图像测试 tflite 模型?
- angular-schematics - 角度示意图:是否可以将模板文件包含到另一个文件中
- arrays - 如何使当您单击动态单元格时,将其内容(文本和数字)写入数组?