services: backend: env_file: - .env environment: - OI_IMPORT_AUTO_RUN=true - OI_IMPORT_AUTO_MODE=luogu - OI_IMPORT_WORKERS=3 - OI_IMPORT_SCRIPT_PATH=/app/scripts/import_luogu_csp.py - OI_IMPORT_LOCAL_RAG_SCRIPT_PATH=/app/scripts/import_local_pdf_rag.py - OI_LOCAL_PDF_DIR=/data/local_pdfs - OI_IMPORT_TARGET_TOTAL=5000 - OI_IMPORT_RESUME_ON_RESTART=true - OI_IMPORT_CLEAR_ALL_PROBLEMS=false - OI_IMPORT_CLEAR_EXISTING=false - "OI_IMPORT_CLEAR_SOURCE_PREFIX=luogu:" - CSP_GEN_AUTO_RUN=true - CSP_GEN_COUNT=1 - CSP_GEN_WAIT_FOR_IMPORT=true - CSP_GEN_SCRIPT_PATH=/app/scripts/generate_cspj_problem_rag.py - CSP_SOLUTION_SCRIPT_PATH=/app/scripts/generate_problem_solutions.py - CSP_SOLUTION_AUTO_RUN_MISSING=true - CSP_SOLUTION_AUTO_LIMIT=50000 - CSP_SOLUTION_AUTO_MAX_SOLUTIONS=3 - CSP_FEEDBACK_AUTO_RUN=true - CSP_FEEDBACK_AUTO_LIMIT=500 - CSP_FEEDBACK_SCRIPT_PATH=/app/scripts/analyze_submission_feedback.py build: context: . dockerfile: Dockerfile.backend # 如需直连后端调试,可打开端口映射;默认仅通过前端反代访问 # ports: # - "8080:8080" volumes: - csp_data:/data - ./data/local_pdfs:/data/local_pdfs restart: unless-stopped frontend: env_file: - .env build: context: . dockerfile: Dockerfile.frontend environment: # 浏览器侧通过同域路径前缀访问后端(Next.js反代到backend) - NEXT_PUBLIC_API_BASE=/admin139 # Next.js 服务端反代用(可选),仅在你把 NEXT_PUBLIC_API_BASE 设为 /api 时需要 - BACKEND_INTERNAL_URL=http://backend:8080 ports: - "7888:3000" depends_on: - backend restart: unless-stopped volumes: csp_data: