docker-compose.yml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # 企业运营 / Admin.NET 一体化编排(前后端 + 反代)
  2. #
  3. # 1. 数据库连接:默认使用镜像内打包的 Configuration(多为开发库)。
  4. # 生产请通过挂载覆盖,例如:
  5. # volumes:
  6. # - ./docker/overrides/Database.json:/app/Configuration/Database.json:ro
  7. # 或按 Furion 文档使用环境变量覆盖连接串。
  8. #
  9. # 2. 启动:
  10. # docker compose up -d --build
  11. #
  12. # 3. 端口(固定与历史布局对齐,可被环境变量覆盖):
  13. # - 9100:前端 HTTP(Nginx 80 → 静态 + /prod-api → api)
  14. # - 9102:后端 API 直连(Kestrel 5005)
  15. # - 9103:前端 HTTPS(Nginx 443,镜像内自签证书;浏览器会提示不受信任属正常)
  16. # 环境变量:WEB_PORT、WEB_HTTPS_PORT、API_HTTP_PORT(默认分别为 9100、9103、9102)
  17. services:
  18. api:
  19. build:
  20. context: .
  21. dockerfile: docker/Dockerfile.api
  22. image: aidop-api:latest
  23. container_name: aidop-api
  24. restart: unless-stopped
  25. environment:
  26. ASPNETCORE_ENVIRONMENT: Production
  27. ASPNETCORE_URLS: http://0.0.0.0:5005
  28. TZ: Asia/Shanghai
  29. # 见 Admin.NET.Core SqlSugarSetup:对已有库跳过 CodeFirst/种子,避免 “Multiple primary key” 等启动失败
  30. DOCKER_SKIP_DBINIT: "1"
  31. # S8-DETECTION-LOG-GROWTH-P0-A:启用 S8LogRetentionCleanupJob(默认 OFF)。
  32. # 该 Job 只认进程环境变量(S8LogRetentionCleanupJob.EnvCleanupEnabled),不读 appsettings。
  33. # 每日 00:00 分批物理 DELETE:detection_log 保留 30 天 / notification_log 90 天 /
  34. # SysJobTriggerRecord 14 天;单批 1000 行、单表单次最多 50 批(5 万行/表/日封顶)。
  35. # 保留天数、批大小、删除范围均未改动,仅打开开关。
  36. AIDOP_S8_LOG_CLEANUP_ENABLED: "true"
  37. # S8-DETECTION-LOG-GROWTH-P0-B:REFRESHED 明细限频窗口(分钟)。
  38. # 不设置时代码默认已是 60;此处显式声明便于运维按需调参,无需发版。
  39. # 注意实际写入周期 = 本值 + 一个业务 tick(默认 5 min),故 60 → 实测约 65 min。
  40. AIDOP_S8_REFRESHED_RATE_LIMIT_MINUTES: "60"
  41. # 日志与上传持久化(按需调整宿主机路径)
  42. volumes:
  43. - aidop-api-logs:/app/logs
  44. - aidop-api-www-upload:/app/wwwroot/upload
  45. ports:
  46. - "${API_HTTP_PORT:-9102}:5005"
  47. networks:
  48. - aidop-net
  49. web:
  50. build:
  51. context: .
  52. dockerfile: docker/Dockerfile.web
  53. image: aidop-web:latest
  54. container_name: aidop-web
  55. restart: unless-stopped
  56. depends_on:
  57. - api
  58. ports:
  59. - "${WEB_PORT:-9100}:80"
  60. - "${WEB_HTTPS_PORT:-9103}:443"
  61. networks:
  62. - aidop-net
  63. networks:
  64. aidop-net:
  65. driver: bridge
  66. volumes:
  67. aidop-api-logs:
  68. aidop-api-www-upload: