Files
2026-09-21 17:34:06 +08:00

60 lines
1.3 KiB
YAML

services:
mysql:
image: mysql:8.0
container_name: student-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: student_system
TZ: Asia/Shanghai
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--default-authentication-plugin=mysql_native_password
ports:
- "3308:3306"
volumes:
- mysql_data:/var/lib/mysql
- ./student_system.sql:/docker-entrypoint-initdb.d/init.sql:ro
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
backend:
build:
context: .
dockerfile: Dockerfile
container_name: student-backend
restart: unless-stopped
environment:
DB_HOST: mysql
DB_PORT: 3306
DB_NAME: student_system
DB_USER: root
DB_PASSWORD: 123456
TZ: Asia/Shanghai
ports:
- "9090:9090"
volumes:
- upload_files:/app/files
depends_on:
mysql:
condition: service_healthy
frontend:
build:
context: ./vue
dockerfile: Dockerfile
container_name: student-frontend
restart: unless-stopped
ports:
- "81:80"
depends_on:
- backend
volumes:
mysql_data:
upload_files: