7df078e0ea
- 交接摘要补 §一·三十五~§一·三十八:角色与授权、需求收敛(4 角色 / 10 菜单 / 取消二期)、 PC 端重搭后的 UI 修复与卡片式基线、品牌改名与新标识 - PRD 与功能逻辑卷只改标题行与产品代号线;**文件名不动** —— verify-docs.py 按路径读, 全库还有 20+ 处按文件名引用,改名会连带炸脚本 - 原型 index / admin-web / teacher-app / student-app 的品牌区改「深学在线」, admin-web 的 .mark(10 处)换成内嵌的新标 data URI,保持原型"单文件自包含"的约定 - 根 AGENTS.md 与 frontend-pc 的规范同步:接线检查补第 ⑨ 项(SVG 资产是不是合法 XML —— SVG 注释里出现连续两个减号就 not well-formed,图标裂开而控制台一句话都不报)、 「最容易写错的约定」6 -> 7 条(新增品牌标) - deploy/docker-compose.yml 只改头注释里的项目名(compose 的 name 与七牛对象前缀都没动)
76 lines
2.5 KiB
YAML
76 lines
2.5 KiB
YAML
# 深学在线 · 本地开发基础设施
|
|
#
|
|
# 用法:
|
|
# 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:
|