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: