文档类型:Operational
这份短文档只回答一个问题:
当服务跑在容器里时,外部依赖地址应该怎么填?
从容器里看地址时:
127.0.0.1- 指向容器自己
- 不是宿主机
0.0.0.0- 只能用于服务端监听
- 不是客户端访问目标
所以:
- 不要把宿主机服务地址写成
127.0.0.1:<port> - 不要把客户端目标地址写成
0.0.0.0:<port>
容器访问宿主机服务时,优先使用:
http://host.docker.internal:<port>
当前已验证通过的例子:
- RAG HTTP:
http://host.docker.internal:9621
- MCP SSE:
http://host.docker.internal:8621/sse
补充口径:
- 如果你是在宿主机直接运行可选仓库内
apps/lightrag-service,repo-local 默认 MCP SSE 地址是http://127.0.0.1:8621/sse - 默认 Compose 栈不会自动启动
apps/lightrag-service;只有显式启用知识链路时才需要填写这条地址
直接用服务名:
http://<service-name>:<port>
例如:
http://platform-api:2142http://interaction-data-service:8081
直接填写真实 URL:
https://rag.example.com
https://mcp.example.com/sse
如果是公司内网可直连地址,也按同样方式处理。
填到:
deploy/.env.stack
字段:
PLATFORM_API_KNOWLEDGE_UPSTREAM_URL=...
PLATFORM_API_KNOWLEDGE_UPSTREAM_API_KEY=填到:
deploy/.env.stack- 或单应用验证时的
apps/runtime-service/deploy/.env.runtime-service
字段:
TEST_CASE_V2_KNOWLEDGE_MCP_ENABLED=true
TEST_CASE_V2_KNOWLEDGE_MCP_URL=...
TEST_CASE_V2_KNOWLEDGE_TIMEOUT_SECONDS=30
TEST_CASE_V2_KNOWLEDGE_SSE_READ_TIMEOUT_SECONDS=300当前这套仓库里已经验证过:
http://host.docker.internal:9621- 可被
platform-api容器访问
- 可被
http://host.docker.internal:8621/sse- 可被
runtime-service容器访问
- 可被
http://127.0.0.1:8621/sse- 作为宿主机直跑可选仓库内
apps/lightrag-service的 repo-local 默认 MCP SSE 口径
- 作为宿主机直跑可选仓库内
也已经验证过下面两种写法不可用:
http://127.0.0.1:9621http://0.0.0.0:8621
如果你不想思考太多:
- 宿主机服务:
host.docker.internal - 容器服务:
service-name - 公网/内网服务:真实 URL