LangBot 和消息平台均运行在 Docker 容器中

前言

如果消息平台(NapCat/Lagrange)和 LangBot 均使用 Docker 启动,那么你需要配置 Docker 的网络连接。

新建一个网络:

lua 复制代码
docker network create langbot-network

在 LangBot 目录的 docker-compose.yaml 文件中添加网络配置(添加到 services.langbot 字段下,并在 networks 字段下添加 langbot-network 网络配置):

yaml 复制代码
services:
  langbot:
    ...
    networks:
      - langbot-network
    ...

networks:
  langbot-network:
    external: true

然后在消息平台的 docker-compose.yaml 文件中添加同样的网络配置(如果是直接 docker run 命令启动的,请在启动命令中添加 --network langbot-network)。接着在消息平台配置文件中,把 WS 反向连接地址中的 IP 地址修改为 langbot(例如:ws://langbot:2280/ws)。最后重启两个容器。

以下是详细配置指南

完整配置步骤

1. 创建 Docker 网络

bash

lua 复制代码
docker network create langbot-network
2. 修改 Dify 的 docker-compose.yaml

yaml

yaml 复制代码
version: '3'

services:
  nginx:
    container_name: dify-nginx  # 关键:设置容器名称
    image: nginx:latest
    ports:
      - "80:80"
    networks:
      - langbot-network  # 加入网络
    # ... 其他配置保持不变

  backend:
    image: dify/backend:latest
    networks:
      - langbot-network  # 加入网络
    # ... 其他配置保持不变

  worker:
    image: dify/worker:latest
    networks:
      - langbot-network  # 加入网络
    # ... 其他配置保持不变

  # ... 其他服务同样添加网络配置

networks:
  langbot-network:
    external: true  # 使用外部创建的网络
3. 修改 LangBot 的 docker-compose.yaml

yaml

yaml 复制代码
version: '3'

services:
  langbot:
    image: your-langbot-image:latest
    environment:
      - BASE_URL=http://dify-nginx/v1  # 关键配置
    networks:
      - langbot-network  # 加入同一个网络
    ports:
      - "2280:2280"  # LangBot 默认端口
    # ... 其他配置保持不变

networks:
  langbot-network:
    external: true  # 使用外部创建的网络
4. 配置 LangBot 访问 Dify

在 LangBot 的配置文件(通常是 .envconfig.yaml)中添加:

env

ini 复制代码
# LangBot 配置
DIFY_BASE_URL=http://dify-nginx/v1
DIFY_API_KEY=your_dify_api_key_here
5. 启动服务

bash

bash 复制代码
# 启动 Dify
cd dify-directory
docker-compose up -d

# 启动 LangBot
cd langbot-directory
docker-compose up -d

验证配置是否成功

  1. 检查网络连通性

bash

bash 复制代码
docker exec -it langbot ping dify-nginx
# 应该能看到成功的 ping 响应
  1. 测试 API 连接

bash

bash 复制代码
docker exec -it langbot curl -X GET http://dify-nginx/v1/workspaces
# 应该返回 Dify 的工作空间信息
  1. 检查 LangBot 日志

bash

ini 复制代码
docker logs langbot-langbot-1
# 查找类似 "Connected to Dify API at http://dify-nginx/v1" 的消息

常见问题解决方案

问题1:LangBot 无法连接 Dify

  • 解决方案:

    1. 检查容器是否在同一网络:docker network inspect langbot-network
    2. 在 LangBot 容器内测试连接:docker exec -it langbot curl -v http://dify-nginx
    3. 确保 Dify 的 nginx 服务正常运行

问题2:出现 502 Bad Gateway 错误

  • 解决方案:

    1. 检查 Dify 后端是否启动:docker-compose logs backend
    2. 验证 nginx 配置:docker exec -it dify-nginx nginx -t
    3. 确保 API 路径正确:BASE_URL=http://dify-nginx/v1

问题3:跨域请求(CORS)问题

  • 在 Dify 的 nginx 配置中添加:

nginx

bash 复制代码
location / {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization';
    # ...其他配置
}

最终架构示意图

按照以上步骤配置后,LangBot 应该能够通过 http://dify-nginx/v1 地址成功访问您本地部署的 Dify 服务。这种配置方式利用了 Docker 的内部 DNS 解析机制,确保容器间可以通过服务名称直接通信。

相关推荐
zSD55rt5a27 分钟前
方差在扩散模型保护中的作用
人工智能·harmonyos
人生百态,人生如梦1 小时前
情感交互仿生人从技术到落地构想3——技术交流贴(2026.7)
人工智能·机器学习·人机交互·交互·具身智能
用户652238438111 小时前
为什么成熟的 LLM 应用,都把"后端地址"做成可切换的配置
人工智能
Aa99883341 小时前
AI视觉检测设备厂家的技术评估框架——以及AI视觉检测的检出边界与适用条件
人工智能
wuhanzhanhui1 小时前
当AI遇见储能!2026武汉国际数字能源产业与新型电力及储能技术展览会
人工智能·能源
Tangyuewei1 小时前
给 AI 套上缰绳:Harness Engineering 是什么
人工智能
AI棒棒牛1 小时前
第11讲 | 目标检测任务:边界框、IoU、类别与置信度
人工智能·yolo·目标检测·yolo26
allione1 小时前
AI时代测试方向AI for Testing和Testing for AI
人工智能·ai测试
武子康1 小时前
GPT-Red:自动化红队如何形成 Agent 安全数据飞轮(4 个闭环 + 6 类评测指标 + 5 类风险误读)
人工智能·openai·agent
阿里云大数据AI技术1 小时前
DataWorks Data Agent 实战课堂(二):一句话搞定数据集成+处理,实现端到端数据流水线
人工智能·agent