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

TypeScript开发Docker应用挂载volume无法同步本地代码改动如何解决

问题核心原因

你当前使用的是Docker的命名卷(named volume)src-prisma:/usr/src,这类卷的初始内容会从镜像对应路径复制生成,生成后和本地文件系统无关联,自然不会同步本地的代码改动。你需要使用*绑定挂载(bind mount)*直接映射本地的src目录到容器内对应路径,才能实现实时同步。

解决步骤

1. 修改docker run命令的挂载参数

把原来的命名卷替换成本地src目录的绑定挂载,注意执行命令的工作路径需要是你的项目根目录:

# Mac/Linux 环境执行
docker run -it -p 3000:4005 -v $(pwd)/src:/usr/src ts-prisma

# Windows PowerShell 环境执行
docker run -it -p 3000:4005 -v ${PWD}/src:/usr/src ts-prisma

上述命令会直接把本地项目的src目录映射覆盖容器内的/usr/src路径,本地对src下文件的改动会实时同步到容器内部。

2. 确认TS项目热重载配置正常

代码同步后还要保证你的npm run dev启动的服务支持热重载,才能让改动自动生效不需要重启容器:

  • 确认dev命令使用了ts-node-dev、nodemon这类支持热重载的工具
  • 配置热重载工具的监听范围包含src目录
  • Windows/WSL环境下可能需要给热重载工具加--poll参数,避免跨系统文件监听失效,示例package.json配置:
    "dev": "ts-node-dev --poll src/index.ts"
    

3. 可选优化配置

可以给node_modules单独加匿名卷,避免绑定挂载时本地node_modules覆盖容器内的依赖版本,提高兼容性:

docker run -it -p 3000:4005 -v $(pwd)/src:/usr/src -v /usr/node_modules ts-prisma

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:27:03