# 企业运营 / Admin.NET 一体化编排(前后端 + 反代) # # 1. 数据库连接:默认使用镜像内打包的 Configuration(多为开发库)。 # 生产请通过挂载覆盖,例如: # volumes: # - ./docker/overrides/Database.json:/app/Configuration/Database.json:ro # 或按 Furion 文档使用环境变量覆盖连接串。 # # 2. 启动: # docker compose up -d --build # # 3. 端口(固定与历史布局对齐,可被环境变量覆盖): # - 9100:前端 HTTP(Nginx 80 → 静态 + /prod-api → api) # - 9102:后端 API 直连(Kestrel 5005) # - 9103:前端 HTTPS(Nginx 443,镜像内自签证书;浏览器会提示不受信任属正常) # 环境变量:WEB_PORT、WEB_HTTPS_PORT、API_HTTP_PORT(默认分别为 9100、9103、9102) services: api: build: context: . dockerfile: docker/Dockerfile.api image: aidop-api:latest container_name: aidop-api restart: unless-stopped environment: ASPNETCORE_ENVIRONMENT: Production ASPNETCORE_URLS: http://0.0.0.0:5005 TZ: Asia/Shanghai # 见 Admin.NET.Core SqlSugarSetup:对已有库跳过 CodeFirst/种子,避免 “Multiple primary key” 等启动失败 DOCKER_SKIP_DBINIT: "1" # 日志与上传持久化(按需调整宿主机路径) volumes: - aidop-api-logs:/app/logs - aidop-api-www-upload:/app/wwwroot/upload ports: - "${API_HTTP_PORT:-9102}:5005" networks: - aidop-net web: build: context: . dockerfile: docker/Dockerfile.web image: aidop-web:latest container_name: aidop-web restart: unless-stopped depends_on: - api ports: - "${WEB_PORT:-9100}:80" - "${WEB_HTTPS_PORT:-9103}:443" networks: - aidop-net networks: aidop-net: driver: bridge volumes: aidop-api-logs: aidop-api-www-upload: