具有动态PostgreSQL MCP集成的Langflow自定义容器
此Docker容器提供了一个预配置的Langflow实例,其中包含:
- 默认流:
view (1).json-集成MCP Tools的全面数据库辅助流程 - 动态PostgreSQL连接:可通过环境变量完全配置
- MCP服务器集成:自动PostgreSQL MCP服务器配置,可适应任何PostgreSQL设置
- 通用兼容性:适用于任何PostgreSQL配置的笔记本电脑
快速开始
基本用法(使用现有的PostgreSQL容器)
docker run -d -p 7860:7860 \
--network your-postgres-network \
-e POSTGRES_HOST=your-postgres-container \
-e POSTGRES_PORT=5432 \
-e POSTGRES_USER=your-username \
-e POSTGRES_PASSWORD=your-password \
-e POSTGRES_DB=your-database \
--name langflow-custom \
duncan3/langflow-custom:1.2.0使用外部PostgreSQL数据库
docker run -d -p 7860:7860 \
-e POSTGRES_HOST=your-postgres-host.com \
-e POSTGRES_PORT=5432 \
-e POSTGRES_USER=your-username \
-e POSTGRES_PASSWORD=your-password \
-e POSTGRES_DB=your-database \
--name langflow-custom \
duncan3/langflow-custom:1.2.0使用Docker Compose
version: '3.8'
services:
langflow:
image: duncan3/langflow-custom:1.2.0
ports:
- "7860:7860"
environment:
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=mypassword
- POSTGRES_DB=newtest
depends_on:
- postgres
networks:
- langflow-network
postgres:
image: postgres:15
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=mypassword
- POSTGRES_DB=newtest
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- langflow-network
networks:
langflow-network:
driver: bridge
volumes:
postgres_data:环境变量
| 变量 | 描述 | 默认值 | 必填 |
|---|---|---|---|
POSTGRES_HOST | PostgreSQL服务器主机名 | localhost | 是的 |
POSTGRES_PORT | PostgreSQL服务器端口 | 5432 | 是的 |
POSTGRES_USER | PostgreSQL用户名 | postgres | 是的 |
POSTGRES_PASSWORD | PostgreSQL密码 | mypassword | 是的 |
POSTGRES_DB | PostgreSQL数据库名称 | newtest | 是的 |
特性
默认流量: view (1).json
该容器包括预配置的流,该流具有:
- 聊天输入/输出:交互式聊天界面
- 代理组件:具有PostgreSQL专业知识的数据库助理
- MCP工具:PostgreSQL查询执行能力
- OpenRouter集成:用于自然语言处理的AI模型
MCP服务器集成
- PostgreSQL MCP服务器自动配置
- 动态连接字符串生成
- 实时数据库查询功能
- 模式探索和数据分析
流量组件
- 聊天输入:用户消息输入
- 代理:具有PostgreSQL知识的数据库助理
- MCP工具:PostgreSQL查询执行
- OpenRouter:AI语言模型
- 聊天输出:响应显示
用法示例
访问Web界面
运行后,请访问Langflow: http://localhost:7860
查询示例
- “数据库中有哪些表?”
- “显示用户表的架构”
- “产品表中有多少条记录?”
- “表之间的关系是什么?”
故障排除
连接问题
- 验证PostgreSQL是否可访问:
docker exec langflow-custom-v2 python -c "import psycopg2; conn = psycopg2.connect(host='your-host', port=5432, user='your-user', password='your-password', database='your-db'); print('Connected!'); conn.close()"- 检查环境变量:
docker exec langflow-custom-v2 env | grep POSTGRES- 验证网络连接:
docker exec langflow-custom-v2 ping -c 2 your-postgres-hostMCP服务器问题
- 确保PostgreSQL凭据正确
- 验证数据库是否存在并且可以访问
- 检查MCP服务器是否可以连接到数据库
安全说明
- 永远不要公开PostgreSQL凭据 在日志或环境文件中
- 使用Docker秘密 用于生产部署
- 限制网络访问 到PostgreSQL容器
- 使用强密码 用于数据库连接
版本历史记录
- v1.2.0版本: 动态MCP配置 -删除了硬编码值,可通过环境变量完全配置
- v1.1.0版本:添加了动态PostgreSQL配置和
view (1).json流动 - v1.0.0:具有基本Langflow设置的初始版本
v1.2.0的新增功能
✅ 通用兼容性
- 没有硬编码值:流不再包含硬编码的PostgreSQL连接详细信息
- 动态MCP配置:MCP服务器自动使用环境变量
- 适用于任何笔记本电脑:只需通过环境变量提供PostgreSQL连接详细信息
✅ 优化启动流程
- 清晰的配置反馈:准确显示正在使用的PostgreSQL连接
- 默认值:如果未设置环境变量,则提供合理的默认值
- 更好的错误处理:如果配置不完整,请清除警告
✅ 启动输出示例
✅ MCP Server configured with PostgreSQL connection:
Host: host.docker.internal:5432
Database: postgres
User: postgres
DATABASE_URL: postgresql://postgres:mypassword@host.docker.internal:5432/postgres
🚀 Starting Langflow...支持
对于问题或疑问:
- 检查容器日志:
docker logs langflow-custom-v2 - 验证PostgreSQL连接参数
- 确保设置了所有必需的环境变量
