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

Docker挂载主机React目录至容器报错:sh:1: react-scripts: not found

解决Docker挂载volume后react-scripts找不到的问题

问题原因

当你用-v $(pwd):/app把主机目录挂载到容器的/app时,容器中通过RUN npm install生成的node_modules目录会被主机目录覆盖——因为主机当前目录里没有node_modules(或者即使有,也不是容器内Node环境安装的版本),而react-scripts命令存放在node_modules/.bin下,自然就找不到了。

解决方案

方案1:保留容器内的node_modules目录

运行容器时,额外添加一个匿名卷来挂载容器内的/app/node_modules,这样主机目录的挂载就不会覆盖这个目录:

docker run -p 5005:3000 -v $(pwd):/app -v /app/node_modules --name react-app21 react-application:1

这个命令里,第二个-v /app/node_modules会让Docker创建一个匿名卷,专门保存容器内的node_modules,既不会被主机目录覆盖,又能同步主机目录的其他文件变更,完美适配开发场景。

方案2:在主机目录安装依赖(可选)

如果你想让主机和容器共享依赖,可以在WSL的当前目录下执行:

npm install

注意要保证主机安装的依赖和容器内Node 18版本兼容,之后再挂载目录运行容器。不过这种方法可能因为主机和容器的环境差异出问题,不如方案1稳定。

验证方法

容器启动后,执行docker exec -it react-app21 sh进入容器,再运行ls /app/node_modules,确认目录存在且包含react-scripts相关文件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 19:22:40