Docker+VS Code修改代码后Untracked文件变更不生效求助
解决Docker Web服务器代码修改不生效的问题
1. 先处理VS Code的"Untracked"提示
这个提示是Git的状态提示,和Docker功能无关,解决步骤:
- 运行
git add .将当前目录下所有未追踪文件加入Git暂存区 - 运行
git commit -m "提交本地代码修改"完成提交,之后文件标签就不会显示"Untracked"
2. 核心问题:容器未同步本地代码修改
新手常见的问题是容器启动时仅复制了初始代码,本地修改后不会自动同步到容器内部,两种解决方式:
方法一:挂载本地目录到容器(开发阶段首选)
启动容器时通过-v参数把本地代码目录挂载到容器内的对应运行目录,实现本地修改实时同步:
假设本地代码存放在./app,容器内代码运行目录为/usr/src/app,启动命令改为:
docker run -d -p 8080:80 -v $(pwd)/app:/usr/src/app your-image-name
-v $(pwd)/app:/usr/src/app:把本地当前目录下的app文件夹映射到容器内的/usr/src/app目录- 本地修改代码后,容器内文件会立刻更新,刷新网页即可看到变化
方法二:重新构建镜像并启动容器(生产阶段用)
如果是发布固定版本,需要把新代码重新打包进镜像:
- 确保
Dockerfile包含COPY . /usr/src/app这类复制代码的指令 - 重新构建镜像:
docker build -t your-image-name .
- 停止并删除旧容器:
docker stop container-id && docker rm container-id
- 启动新容器:
docker run -d -p 8080:80 your-image-name
3. 额外检查项
- 确认Web服务器开启了自动重载:比如Node.js用
nodemon、Python Flask开启debug=True,否则即使文件同步,服务器也不会自动重启加载新代码 - 核对挂载路径:容器内的目录要和
Dockerfile中设置的工作目录(WORKDIR指令)一致
内容的提问来源于stack exchange,提问作者VGA
相关产品推荐
相关产品推荐

