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

修改代码后如何同步Docker Volume变更,无需重新构建镜像?

解决方案

1. 修复挂载路径拼写错误

你运行容器时的挂载路径写成了/dasboard,但Dockerfile里的工作目录是/dashboard,这是导致挂载失效的核心原因——路径不匹配,本地代码根本没覆盖容器里的目标代码目录。

修改后的运行命令:

docker run --name cliente -v "C:\Users\DELL AL\OneDrive\Escritorio\Tareas_Arquitectura\cliente_ETL":/dashboard -p 0.0.0.0:5000:5000 --link dgraph:dgraph cliente

2. 优化Dockerfile(可选,进一步提升开发效率)

当前Dockerfile把代码ADD进镜像,开发阶段其实不需要这一步(挂载卷会覆盖目录内容),调整后可以利用Docker缓存减少重复构建时间:

# python版本
FROM python:3.8-alpine

# 设置工作目录
WORKDIR /dashboard

# 先安装系统依赖和Python依赖(依赖不变时会复用缓存)
RUN apk --no-cache add musl-dev linux-headers g++
COPY requirements.txt .
RUN pip install -r requirements.txt

# 启动命令(代码由挂载卷提供)
CMD ["python", "main.py"]

这样只有当requirements.txt变化时,才会重新执行依赖安装步骤,大幅节省构建耗时。

3. 确保代码变更实时生效

  • 挂载路径修正后,本地修改代码会自动同步到容器的/dashboard目录
  • 如果你的Web框架(比如Flask)没有开启自动重载,需要手动开启debug模式:
    • 方式一:通过环境变量启动
      docker run --name cliente -e FLASK_DEBUG=1 -v "C:\Users\DELL AL\OneDrive\Escritorio\Tareas_Arquitectura\cliente_ETL":/dashboard -p 0.0.0.0:5000:5000 --link dgraph:dgraph cliente
      
    • 方式二:在代码中设置
      if __name__ == '__main__':
          app.run(debug=True, host='0.0.0.0')
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 16:07:23