Docker Compose提示“文件或目录不存在”的问题求助
问题解决:Docker Compose多服务容器化部署错误
错误原因
你在根目录的docker-compose.yml里犯了两个关键错误:
- 既通过
include引入了子目录的完整服务配置,又重复定义了backend_django等服务,导致配置冲突 - 重新定义服务时,
build: ./api没有指定正确的Dockerfile路径,Docker会默认在./api根目录找Dockerfile,但你的Django Dockerfile实际在api/compose/local/django/下,所以找不到文件
解决方案
根目录的docker-compose.yml不需要重新定义服务,include指令已经会把子目录frontend/docker-compose.yml和api/docker-compose.yml中的所有服务(包括django、postgres、docs以及前端服务)合并到根配置中。直接使用以下简化的根配置即可:
include: - ./frontend/docker-compose.yml - ./api/docker-compose.yml
验证方法
在项目根目录执行以下命令,就能同时构建并启动所有服务:
docker compose up --build
额外说明(可选)
如果需要对某个子服务做额外配置(比如调整依赖、端口映射),可以在根目录的docker-compose.yml中覆盖子服务的配置,而不是重新定义整个服务。例如要给django服务加额外依赖:
include: - ./frontend/docker-compose.yml - ./api/docker-compose.yml services: django: depends_on: - postgres - frontend_vue # 新增依赖
内容的提问来源于stack exchange,提问作者Kevin B.
相关产品推荐
相关产品推荐

