Files
GovAI/docker/docker-compose.yml
T
selfrelease 65dc805eb5 feat: 系统优化 - ESLint、Tailwind、前端健壮性、后端工程化、运维可观测性
- 前端: ESLint+Prettier配置、Tailwind v4配置、ErrorBoundary、全局AuthLoader优化、ReactQuery分层
- 后端: MinIO凭证移除、Docker统一为govai品牌、zerolog日志封装、错误码枚举、文件上传校验、单元测试(13项全通过)
- 运维: 健康检查增强(PG/Redis ping)、Prometheus指标(/metrics端点)、多租户tenant包、RateLimit nil防御
- 移动: citation_prompt.txt → internal/assets/
2026-06-23 14:48:31 +08:00

88 lines
2.3 KiB
YAML

# GovAI - 开发环境基础设施
# 使用方式: docker compose -f docker/docker-compose.yml up -d
services:
postgres:
image: pgvector/pgvector:pg17
container_name: govai-postgres
restart: unless-stopped
ports:
- "5432:5432"
environment:
POSTGRES_USER: ${POSTGRES_USER:-govai}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-govai}
POSTGRES_DB: ${POSTGRES_DB:-govai_portal}
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U govai"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
container_name: govai-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: govai-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: govai-ppt-worker
restart: unless-stopped
ports:
- "8090:8090"
environment:
WORKER_HOST: 0.0.0.0
WORKER_PORT: 8090
DATABASE_URL: postgres://${POSTGRES_USER:-govai}:${POSTGRES_PASSWORD:-govai}@postgres:5432/${POSTGRES_DB:-govai_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: