Docker容器间Langflow与Weaviate连接失败问题求助
解决Langflow与同一Docker网络下Weaviate的连接问题
问题根源分析
- 容器网络命名空间问题:Langflow容器内的
localhost指向容器自身,而非宿主机或Weaviate容器,直接用localhost:8080会导致连接被拒。 - Weaviate模块依赖缺失:Weaviate配置了
text2vec-ollama向量模块,但未指定Ollama的访问地址,会导致模块加载失败,间接引发服务异常。
具体解决方案
1. 修复Weaviate的Ollama模块配置
在docker-compose.yml的Weaviate服务中添加Ollama的网络地址配置,确保模块能正常加载:
weaviate: # 保留原有其他配置 environment: AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true' DISABLE_TELEMETRY: 'true' PERSISTENCE_DATA_PATH: '/var/lib/weaviate' DEFAULT_VECTORIZER_MODULE: 'text2vec-ollama' ENABLE_MODULES: 'text2vec-ollama' CLUSTER_HOSTNAME: 'node1' # 添加以下两行配置 OLLAMA_API_URL: 'http://ollama:11434' # 用Docker网络内的Ollama服务名访问 TEXT2VEC_OLLAMA_MODEL: 'llama2' # 替换为你已拉取的模型(如qwen、mistral等)
2. 修正Langflow中Weaviate的连接地址
在Langflow的Weaviate组件配置里,将连接地址从http://localhost:8080替换为Docker网络内的Weaviate服务名:
http://weaviate:8080
Docker Compose会自动为同一网络内的服务提供DNS解析,通过服务名可直接访问对应容器。
3. 调整容器启动依赖
给Weaviate添加启动依赖,确保Ollama先启动完成:
weaviate: # 保留原有其他配置 depends_on: - ollama
4. 重启服务并验证
执行以下命令重启整个容器集群:
docker-compose down docker-compose up -d
验证步骤:
- 查看Weaviate日志确认服务正常启动:
docker logs proto_rag_weaviate_1,日志中应出现"Ready"字样,无Ollama相关错误。 - 在Langflow中重新配置Weaviate组件,使用
http://weaviate:8080测试连接。
内容的提问来源于stack exchange,提问作者lukasschoettler
相关产品推荐
相关产品推荐

