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

在Docker容器中运行React Native/Expo时热重载失效问题求助

解决方案
  • 路径不匹配修复(核心问题)
    你的Dockerfile中指定的工作目录为/home,构建时代码也被复制到/home路径下,但docker-compose的卷挂载将本地代码映射到了/usr/src/app,两者路径完全不匹配,容器运行时读取的始终是构建阶段写入/home的静态代码,自然无法监听到本地文件修改。
    对齐两端路径即可,推荐修改Dockerfile的路径配置:

    # 替换原COPY和WORKDIR配置
    COPY . /usr/src/app/
    WORKDIR /usr/src/app
    

    也可以修改docker-compose的挂载规则:

    volumes:
      - .:/home
    
  • 补充环境变量与启动参数
    现有配置基础上,在docker-compose的environment节点添加以下配置:

    - REACT_NATIVE_PACKAGER_HOSTNAME=你的宿主机局域网IP # 手机端访问时必填,本地模拟器可填127.0.0.1
    - CHOKIDAR_INTERVAL=1000 # 降低文件轮询间隔,提升热更响应速度
    

    同时修改Dockerfile的启动命令清除Expo缓存:

    CMD [ "expo", "start", "--clear" ]
    
  • 排除node_modules覆盖问题
    本地的node_modules会覆盖容器内安装的依赖,容易出现版本兼容性问题,在docker-compose的volumes节点添加匿名卷排除该目录:

    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules # 新增这一行
    
  • 跨系统文件监听适配
    如果使用Windows WSL2运行Docker,需要将项目代码存放在WSL2的原生文件系统中,不要放在/mnt/开头的Windows挂载目录,跨系统文件系统的修改事件默认无法被Docker正常监听。
    如果使用macOS,需要在Docker Desktop的设置->资源->文件共享中,将项目所在目录加入授权列表,避免权限限制导致监听失效。

修改完成后执行docker-compose down && docker-compose up --build -d重建容器即可生效。

内容的提问来源于stack exchange,提问作者BigJobbies

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:36:04