Files
test/docker-compose.yml
2026-09-21 19:03:31 +08:00

89 lines
2.2 KiB
YAML

# 沃林学生管理系统 —— Docker Desktop 一键部署
#
# 启动: docker compose up -d --build
# 日志: docker compose logs -f app
# 停止: docker compose down
# 清库: docker compose down -v (会删掉 MySQL 数据卷)
#
# 说明:
# * 独立 project name = wolin_sms,不会和已有的 dify / milvus 项目混在一起
# * 宿主 3306 已被本机 MySQL 占用,所以容器 MySQL 映射到宿主 3307
# * 应用映射宿主 8010(与 start.bat 保持一致)
name: wolin_sms
services:
mysql:
image: mysql:8.0
container_name: wolin-mysql
restart: unless-stopped
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: root123456
MYSQL_DATABASE: wolin_sms
MYSQL_USER: wolin
MYSQL_PASSWORD: wolin123456
TZ: Asia/Shanghai
ports:
- "3307:3306" # 宿主机 3307 -> 容器 3306
volumes:
- wolin_mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -proot123456 --silent"]
interval: 5s
timeout: 5s
retries: 30
start_period: 30s
networks:
- wolin-net
app:
build:
context: .
dockerfile: Dockerfile
image: wolin-sms:1.0.0
container_name: wolin-app
restart: unless-stopped
depends_on:
mysql:
condition: service_healthy
environment:
APP_PORT: "8000"
TZ: Asia/Shanghai
APP_NAME: 沃林学生管理系统
DEBUG: "true"
DB_DRIVER: mysql+pymysql
DB_HOST: mysql
DB_PORT: "3306"
DB_USER: wolin
DB_PASSWORD: wolin123456
DB_NAME: wolin_sms
JWT_SECRET: wolin-sms-docker-secret-change-me
JWT_EXPIRE_MINUTES: "720"
AUTH_ENABLED: "true"
ADMIN_USERNAME: admin
ADMIN_PASSWORD: admin123
INIT_DB: "true"
SEED_DATA: "true"
DB_WAIT_TIMEOUT: "120"
ports:
- "8010:8000" # 宿主机 8010 -> 容器 8000
networks:
- wolin-net
volumes:
wolin_mysql_data:
name: wolin_sms_mysql_data
networks:
wolin-net:
name: wolin_sms_net
driver: bridge