# 沃林学生管理系统 —— 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