RAGFlow解决Docker Compose include 报错问题
解决 Docker Compose include
报错问题
问题描述
运行以下命令时:
docker compose -f docker-compose.yml up -d
出现错误提示:
validating docker-compose.yml: (root) Additional property include is not allowed
原因分析
docker-compose.yml
文件里出现了 非法字段include:
。- Docker Compose 标准语法并不支持
include
。 - 只有官方标准字段(如
services
、networks
、volumes
等)可以使用。
错误示例
include:- ./docker-compose-base.yml
这段配置是错误的,需要移除!
正确的解决方法
方法 1:删除 include
,用命令行多文件合并
-
编辑
docker-compose.yml
- 删掉开头的
include:
部分。
- 删掉开头的
-
然后启动时用
-f
指定多个文件:
docker compose -f docker-compose-base.yml -f docker-compose.yml up -d
这样 Docker Compose 会自动合并这两个文件:
docker-compose-base.yml
定义基础配置docker-compose.yml
可以覆盖或扩展基础配置
注意,如果这样,对应的停止命令为
docker compose -f docker-compose-base.yml -f docker-compose.yml down
方法 2:使用 extends
(如果只想复用服务)
如果你只想复用某个服务定义,可以使用 extends
:
services:ragflow:extends:file: docker-compose-base.ymlservice: ragflow-base
要求:
docker-compose-base.yml
中定义了services: ragflow-base
- 适合复用服务,不适合合并整体配置。
额外提示:关于 MACOS
警告
出现的警告信息:
WARN[0000] The "MACOS" variable is not set. Defaulting to a blank string.
含义:
.env
文件或者系统环境变量没有设置MACOS
。- 不影响容器启动,可以忽略;需要的话手动补充在
.env
文件里。