# 数据信息填报系统 · 本地开发基础设施 # # 用法: # cd deploy # copy .env.example .env (首次) # docker compose up -d # # ⚠️ 容器名统一加 xt- 前缀,端口刻意避开 55432 / 6379 # (本机已有其他项目的 pg-verify 与 redis-local 在跑,不要动它们) # # 对象存储:用**七牛云**,这里不起容器。 # 材料原图与规范件存七牛(空间 tools-matrix,私有 → 下载走签名链接), # 由后端用官方 SDK 直连,不走 S3 协议。 # 曾经起过一个 MinIO 备用("本地/生产走同一套 S3 接口"),但代码最终走的是七牛 SDK, # 那个容器从来没被连过 —— 留着只会让人以为"本地还有个对象存储要用",所以删掉了。 # 本地开发也不需要它:provider=local 时文件落在 backend/data/uploads。 name: xiaotutongxue services: # ── PostgreSQL 16 ───────────────────────────────── pg: image: postgres:16-alpine container_name: xt-pg restart: unless-stopped environment: POSTGRES_DB: ${PG_DB:-filldb} POSTGRES_USER: ${PG_USER:-fill} POSTGRES_PASSWORD: ${PG_PASSWORD:-fill_dev_pwd} # 中文排序与大小写:用 C 排序 + UTF8,避免 locale 差异导致索引行为不一致 POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C" TZ: Asia/Shanghai ports: - "${PG_PORT:-5432}:5432" volumes: - pg-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${PG_USER:-fill} -d ${PG_DB:-filldb}"] interval: 5s timeout: 3s retries: 12 start_period: 10s command: - postgres # 超大图处理是内存密集的,DB 侧保留默认即可,但把慢查询记下来 - -c - log_min_duration_statement=1000 - -c - timezone=Asia/Shanghai # ── Redis 7 ─────────────────────────────────────── redis: image: redis:7-alpine container_name: xt-redis restart: unless-stopped ports: - "${REDIS_PORT:-16379}:6379" volumes: - redis-data:/data command: - redis-server - --appendonly - "yes" - --requirepass - "${REDIS_PASSWORD:-redis_dev_pwd}" healthcheck: test: ["CMD-SHELL", "redis-cli -a ${REDIS_PASSWORD:-redis_dev_pwd} ping | grep PONG"] interval: 5s timeout: 3s retries: 12 start_period: 5s volumes: pg-data: redis-data: