Files
xiaotutongxue/deploy/docker-compose.yml
T
lovife 7df078e0ea docs: 同步交接摘要 / PRD / 原型,并记录品牌改名「深学在线」
- 交接摘要补 §一·三十五~§一·三十八:角色与授权、需求收敛(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 与七牛对象前缀都没动)
2026-10-10 16:49:04 +08:00

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: