首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React & Webpack & Docker:在生产环境中将env注入到docker-container中

React & Webpack & Docker:在生产环境中将env注入到docker-container中
EN

Stack Overflow用户
提问于 2021-03-04 22:51:33
回答 3查看 516关注 0票数 0

嗨,试着用Docker和Webpack部署我的React-App。我的问题是我想在运行时注入我的环境变量。

如果我运行我的停靠器,我希望环境ENV_TEST具有值testValue

代码语言:javascript
复制
docker run -p 8080:8080 -e ENV_TEST=testValue client

Webpack-文件:

代码语言:javascript
复制
new webpack.DefinePlugin({
    "process.env.ENV_TEST": JSON.stringify(
        process.env.ENV_TEST
    ),
}),

Docker-file:

代码语言:javascript
复制
ENV ENV_TEST=default

React:

代码语言:javascript
复制
console.log(process.env.ENV_TEST)
//-->default

目前,我的ENV_TEST的值为default (形成Docker文件,形成构建时间)。如果我没有在Docker-File中定义这个值,那么ENV_TEST就是未定义的。如果我用-e ENV_TEST=testValue运行我的停靠容器,我想用testValue值覆盖默认值。

Thx寻求任何帮助

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-03-05 07:19:41

感谢你的回答。我最终得到了这个解决方案:https://github.com/kunokdev/cra-runtime-environment-variables

票数 0
EN

Stack Overflow用户

发布于 2021-03-04 23:08:52

你不能在运行时覆盖这个环境变量,因为它的运行时是客户端浏览器(我猜它是一个react应用程序)。

它的值在构建时被覆盖,从那里开始,该值被硬编码到js包中。

您可以将一个动态值传递给html,然后让您的应用程序从那里读取它。

###Edit

代码语言:javascript
复制
// index.html

<html>
...
  <body>
    <script>
       window.TEST_ENV = '<%= EJVaraibale %>';
    </script>
  </body>
</html>
票数 2
EN

Stack Overflow用户

发布于 2021-03-04 23:09:47

当我们为我们的React应用程序这样做的时候,我们编写了一个小型的express服务器,它接受index.html并通过替换我们在index.html中作为占位符放置的字符串内容来注入配置,同时构建用于生产的应用程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66477475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档