You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器中Webpack Encore环境变量无法正常工作的问题求助

Docker容器中Webpack Encore环境变量无法正常工作的问题求助

我之前维护着一个基于Symfony + Webpack Encore的项目,本地机器上MySQL、PHP、Mercure、Yarn/NodeJS这些依赖都配齐了,前端代码也能正常读取环境变量,整套跑起来毫无问题。

之前正常运行的核心配置

  • 本地的.env.local文件:
MERCURE_HUB_URL=https://localhost/.well-known/mercure
  • webpack.config.js里的环境变量注入逻辑:
Encore.configureDefinePlugin(options => {
  const environment = dotenv.config({
    path: './.env.local',
    debug: false
  })
  console.info(environment.parsed)
  options['process.env.MERCURE_HUB_URL'] = JSON.stringify(environment.parsed.MERCURE_HUB_URL)
})
  • 前端api.js里读取变量的代码:
const hub = new URL(process.env.MERCURE_HUB_URL)

最近我打算切换到容器化部署,把Node服务放到容器里运行,用的是Symfony Docker方案。结果这一改,环境变量就彻底不好使了!

下面是我compose.yaml里关于Encore容器的配置(内容没贴全,核心结构如下):

encore:
  image: node:latest-alpine
  volumes:
    # 挂载本地项目目录到容器内
    - ./:/app
  # 容器启动后运行Webpack Dev Server
  command: yarn dev-server

现在的情况是,容器里的Webpack Dev Server跑起来后,前端代码完全读不到MERCURE_HUB_URL这个环境变量,之前的注入逻辑完全失效了。有没有经验丰富的老哥能帮忙分析下问题出在哪,该怎么解决?

备注:内容来源于stack exchange,提问作者Stephan Vierkant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:34:32