Files
GovAI/docker/docker-compose.yml
2026-06-15 23:48:37 +08:00

89 lines
2.3 KiB
YAML

# Aily - 开发环境基础设施
# 使用方式: docker compose -f docker/docker-compose.yml up -d
services:
postgres:
image: pgvector/pgvector:pg17
container_name: aily-postgres
restart: unless-stopped
ports:
- "5432:5432"
environment:
POSTGRES_USER: ${POSTGRES_USER:-aily}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-aily}
POSTGRES_DB: ${POSTGRES_DB:-aily_portal}
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U aily"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
container_name: aily-redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redisdata:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
minio:
image: minio/minio
container_name: aily-minio
restart: unless-stopped
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
volumes:
- miniodata:/data
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 10s
timeout: 5s
retries: 5
ppt-worker:
build:
context: ../ppt-worker
dockerfile: Dockerfile
container_name: aily-ppt-worker
restart: unless-stopped
ports:
- "8090:8090"
environment:
WORKER_HOST: 0.0.0.0
WORKER_PORT: 8090
DATABASE_URL: postgres://${POSTGRES_USER:-aily}:${POSTGRES_PASSWORD:-aily}@postgres:5432/${POSTGRES_DB:-aily_portal}?sslmode=disable
REDIS_URL: redis://redis:6379/0
PPT_MASTER_PATH: /opt/ppt-master
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
OPENAI_BASE_URL: ${OPENAI_BASE_URL:-https://dashscope.aliyuncs.com/compatible-mode/v1}
OPENAI_MODEL: ${OPENAI_MODEL:-qwen-max}
IMAGE_BACKEND: ${IMAGE_BACKEND:-wanx}
WANX_MODEL: ${WANX_MODEL:-wanx-v1}
volumes:
- ppt-projects:/tmp/govai
- ../../ppt-master:/opt/ppt-master:ro
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
volumes:
pgdata:
redisdata:
miniodata:
ppt-projects: