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

Docker镜像构建生成的文件在docker compose启动的容器中缺失问题

问题原因

你遇到的问题根源是docker-compose.yml中的挂载配置覆盖了镜像内的文件:
你在Dockerfile构建阶段通过RUN命令生成的data.json是存放在镜像内的/code/Backend/FashionPlaza/路径下,但docker-compose的web服务配置了volumes: - .:/code,会把宿主机当前目录直接挂载到容器的/code路径,完全覆盖了镜像内该路径下的所有内容,宿主机本地没有对应的data.json文件,自然在容器内看不到。
而直接执行docker run -it --rm vijeth11/fassionplaza bash时没有挂载宿主机目录,使用的是镜像内的完整文件系统,所以可以正常看到data.json。

解决方案

你可以根据实际使用场景选择以下任意一种方案:

  • 方案一:删除不必要的挂载配置
    如果不需要本地开发时实时同步代码到容器内,直接删除docker-compose.yml中web服务的volumes字段即可,容器会直接使用镜像内的所有文件,data.json就能正常读取。
  • 方案二:调整挂载规则避开目标文件
    如果确实需要保留本地代码同步的能力,可以新增匿名卷保证data.json使用镜像内的版本,修改volumes配置为:
volumes: 
  - .:/code
  - /code/Backend/FashionPlaza/data.json

新增的第二条规则会让容器内该文件路径优先使用镜像内的内容,不会被宿主机目录覆盖。

  • 方案三:本地预生成数据文件
    如果是开发场景需要使用本地最新的数据,你可以在宿主机的./Backend/FashionPlaza目录下本地执行一次python3 manage.py dumpdata相关命令生成data.json,挂载后容器就可以读取到本地的该文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:27:03