首页
/ 深度解析StitionAI/Devika项目的Docker Compose部署架构

深度解析StitionAI/Devika项目的Docker Compose部署架构

2025-07-05 07:36:01作者:江焘钦

项目概述

StitionAI/Devika是一个基于AI技术的应用项目,采用微服务架构设计,通过Docker Compose实现容器化部署。该项目由三个核心服务组成:Ollama服务、Devika后端引擎和Devika前端应用,共同构建了一个完整的AI应用系统。

核心服务架构分析

1. Ollama服务容器

ollama-service:
  image: ollama/ollama:latest
  expose:
    - 11434
  ports:
    - 11434:11434

Ollama服务是该项目的AI基础服务,使用官方最新镜像。技术特点包括:

  • 暴露11434端口供内部通信
  • 映射11434主机端口实现外部访问
  • 配置了完善的健康检查机制,确保服务可用性

健康检查配置细节:

  • 每5秒执行一次检查
  • 超时设置为30秒
  • 最多重试5次
  • 服务启动后有30秒的初始化宽限期

2. Devika后端引擎

devika-backend-engine:
  build:
    context: .
    dockerfile: devika.dockerfile
  depends_on:
    - ollama-service

后端引擎是该项目的核心处理单元,关键技术配置包括:

  • 依赖Ollama服务,确保启动顺序
  • 使用自定义Dockerfile构建镜像
  • 暴露1337端口用于API通信
  • 配置了与前端相同的健康检查机制

环境变量配置:

  • OLLAMA_HOST=http://ollama-service:11434:明确指定Ollama服务地址

数据持久化方案:

  • 使用命名卷devika-backend-dbstore挂载到容器内特定目录
  • 确保数据库数据在容器重启后不丢失

3. Devika前端应用

devika-frontend-app:
  build:
    context: .
    dockerfile: app.dockerfile
    args:
      - VITE_API_BASE_URL=http://127.0.0.1:1337

前端应用是与用户交互的界面层,关键配置包括:

  • 构建时通过参数指定API基础URL
  • 依赖后端引擎服务
  • 暴露3000端口用于Web访问
  • 映射3000主机端口实现外部访问

网络与存储设计

自定义网络配置

networks:
  devika-subnetwork:

项目创建了专用的devika-subnetwork网络,特点包括:

  • 所有服务加入同一子网
  • 实现服务间隔离通信
  • 通过服务名称进行内部DNS解析

数据卷管理

volumes:
  devika-backend-dbstore:

后端数据库使用命名卷实现数据持久化:

  • 卷名称为devika-backend-dbstore
  • 自动管理存储位置
  • 确保数据安全性和可迁移性

部署实践指南

1. 环境准备

确保已安装:

  • Docker引擎(版本20.10.0+)
  • Docker Compose(版本1.29.0+)

2. 启动流程

  1. 克隆项目代码
  2. 在项目根目录执行:docker-compose up -d
  3. 系统将按顺序启动所有服务

3. 访问方式

  • 前端应用:http://localhost:3000
  • 后端API:http://localhost:1337
  • Ollama服务:http://localhost:11434

4. 常见问题排查

  1. 端口冲突:检查11434、1337和3000端口是否被占用
  2. 构建失败:确保Dockerfile和相关依赖文件完整
  3. 服务不可用:使用docker-compose logs查看各服务日志

架构设计优势

  1. 微服务隔离:各组件独立部署,互不干扰
  2. 依赖管理:明确的服务启动顺序控制
  3. 健康监控:完善的健康检查机制保障系统稳定性
  4. 数据持久化:关键数据独立存储,避免丢失
  5. 网络隔离:专用网络提高安全性

扩展建议

  1. 生产环境部署

    • 添加TLS/SSL加密
    • 配置资源限制
    • 设置日志轮转
  2. 性能优化

    • 添加缓存服务
    • 考虑负载均衡
    • 优化容器资源分配
  3. 监控方案

    • 集成Prometheus监控
    • 添加Grafana仪表盘
    • 设置告警机制

通过这份Docker Compose配置,StitionAI/Devika项目实现了一个高度可维护、可扩展的AI应用架构,为开发者提供了清晰的部署蓝图和灵活的定制空间。