This repository has been archived on 2026-03-05. You can view files and clone it, but cannot push or open issues or pull requests.
AccountingBot/docker-compose.yml
2026-01-21 10:45:30 +08:00

59 lines
1.5 KiB
YAML

services:
# 1. 机器人主逻辑服务
bot:
build: ./bot
container_name: accounting_bot
restart: always
env_file: .env
depends_on:
db:
condition: service_healthy # 确保数据库就绪后再启动
vlm-service:
condition: service_started
volumes:
- ./bot:/app
- ./data/temp:/app/temp
networks:
- accounting_net
environment:
- BOT_PROXY=${GLOBAL_PROXY} # 注入代理变量
- PYTHONUNBUFFERED=1 # 关键:禁用 Python 的输出缓冲
# 2. 本地视觉大模型 (Ollama + Qwen3-VL)
vlm-service:
image: ollama/ollama:latest
container_name: vlm_service
runtime: nvidia # 关键:直接调用 NVIDIA 运行时,解决权限和 OCI 错误
environment:
- NVIDIA_VISIBLE_DEVICES=all
- OLLAMA_KEEP_ALIVE=24h # 让模型常驻显存,提高多人使用的响应速度
volumes:
- ./data/ollama:/root/.ollama
restart: always
networks:
- accounting_net
# 3. 数据库服务 (PostgreSQL)
db:
image: postgres:15-alpine
container_name: accounting_db
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- ./data/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
restart: always
networks:
- accounting_net
networks:
accounting_net:
driver: bridge