Files
012-kaopeilian/deploy/docker/docker-compose.admin.yml
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

116 lines
3.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 考培练系统 SaaS 超级管理后台 Docker Compose 配置
#
# 启动命令:
# cd /root/aiedu && docker compose -f docker-compose.admin.yml up -d
#
# 重新构建后端:
# docker compose -f docker-compose.admin.yml build --no-cache kaopeilian-admin-backend
#
# 服务说明:
# - kaopeilian-admin-frontend: 管理后台前端 (端口 3030)
# - kaopeilian-admin-backend: 管理后台后端 (端口 8030)
#
# 域名admin.kpl.ireborn.com.cn
#
# 注意:敏感配置从 .env.admin 文件读取
name: kaopeilian-admin
services:
# ============================================
# 管理后台前端
# ============================================
kaopeilian-admin-frontend:
build:
context: ./kaopeilian-admin-frontend
dockerfile: Dockerfile
image: kaopeilian-admin-frontend:1.0.0
container_name: kaopeilian-admin-frontend
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
ports:
- "127.0.0.1:3030:80" # 仅本地访问,通过 Nginx 反向代理
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
- kaopeilian-network
depends_on:
kaopeilian-admin-backend:
condition: service_started
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:80/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
deploy:
resources:
limits:
cpus: '0.5'
memory: 256M
reservations:
cpus: '0.1'
memory: 64M
# ============================================
# 管理后台后端(开发环境 - 热重载)
# ============================================
kaopeilian-admin-backend:
build:
context: ./kaopeilian-backend
dockerfile: Dockerfile.admin
image: kaopeilian-admin-backend:1.0.0
container_name: kaopeilian-admin-backend
restart: unless-stopped
env_file:
- .env.admin
environment:
- TZ=Asia/Shanghai
- PYTHONPATH=/app
ports:
- "127.0.0.1:8030:8000" # 仅本地访问,通过 Nginx 反向代理
volumes:
# 代码热重载 - 挂载整个 app 目录
- ./kaopeilian-backend/app:/app/app:rw
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
# 开发模式命令 - 启用热重载
command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload", "--reload-dir", "/app/app"]
networks:
- kaopeilian-network
- prod-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
deploy:
resources:
limits:
cpus: '1'
memory: 1G
reservations:
cpus: '0.25'
memory: 256M
networks:
kaopeilian-network:
external: true
name: kaopeilian-network
prod-network:
external: true
name: prod-network