Compare commits

..

16 Commits
v1.2 ... main

Author SHA1 Message Date
xxx
582fc53a5f 1.6 2024-02-20 15:47:14 +08:00
xxx
da5af54d2c 1.5.2 2023-11-20 11:05:34 +08:00
xxx
b14d1dd351 fixed: typo 2023-11-18 12:50:09 +08:00
xxx
d08d9cb74e 1.5.1 2023-11-17 13:39:48 +08:00
xxx
d1463c6fe8 update 2023-11-15 16:00:27 +08:00
xxx
4add691e38 v1.4 2023-09-27 11:20:12 +08:00
xxx
1e767304e6 v1.4 2023-09-26 21:25:28 +08:00
xxx
adfdad1aff fixed: minio数据挂载 2023-09-10 08:58:41 +08:00
xxx
3fd06d4123 update 2023-09-06 21:36:48 +08:00
xxx
45d1b705d9 update 2023-09-06 17:21:26 +08:00
xxx
be70e8e5fd v1.3 2023-09-06 13:56:24 +08:00
xxx
db9d66b099 v1.2.2 2023-08-06 09:31:56 +08:00
xxx
375c9ebc82 支持arm 2023-08-04 13:58:25 +08:00
xxx
66f16b9ca2 mysql升级到8 && redis升级到7.0.12 2023-08-04 13:58:08 +08:00
xxx
8a821b12d4 update 2023-08-04 11:56:01 +08:00
xxx
6974905a95 playedu-light升级 2023-08-04 11:55:35 +08:00
10 changed files with 43 additions and 500 deletions

View File

@ -2,19 +2,21 @@
### 背景
此项目提供 docker-compose 一键运行 PlayEdu 。提供一下软件环境:
此项目提供 `docker-compose` 一键运行 `PlayEdu` 。提供一下软件环境:
- PlayEdu v1.1
- PlayEdu v1.6
- MySQL 5.7.42
- Redis 7.0.2
- MinIO - 由 bitnami 封装的 MinIO 发行版本
### 注意
### 快速上手
#### 第一步、克隆本仓库
```
git clone git@github.com:PlayEdu/docker-compose.git playedu-docker-compose
git clone -b 1.6 https://github.com/PlayEdu/docker-compose.git playedu-docker-compose
```
#### 第二步、构建镜像
@ -26,20 +28,31 @@ git clone git@github.com:PlayEdu/docker-compose.git playedu-docker-compose
cd playedu-docker-compose
# 构建镜像
docker-compose build
sudo docker-compose build
```
#### 第三步、运行 `MySQL`, `Redis`, `MinIO`
> 1.下面命令是在 playedu-docker-compose 目录执行
> 2.下面命令 # 开头的是对下一行命令的注释,无需执行
```
# 复制 .env.example 并命名为 .env
# #### 这里是注释的话,无需执行 ####
# 命令解释:复制 .env.example 并命名为 .env
cp .env.example .env
# 运行容器
docker-compose up -d mysql redis minio
# #### 这里是注释的话,无需执行 ####
# .env.example 是我们预置的默认的运行环境变量,比如:运行的端口号、数据库名等
# 如果您对这一快不很熟悉的话,建议您无需修改 .env 文件内容,因为修改了内容
# 按照本文下面的流程可能就无法走通
# #### 这里是注释的话,无需执行 ####
# 命令解释:给 data 授权可读、可写、可执行权限
# data 目录将会挂载到容器以用来数据化持久存储(更多知识请自行了解 docker 数据卷)
chmod a+rwx data
# #### 这里是注释的话,无需执行 ####
# 命令解释:运行容器
sudo docker-compose up -d mysql redis minio
```
执行上述命令会很快返回结果,但是这并不意味着上述三个软件就已经成功的运行了。它们的初始化运行都需要一段过程,这里我们稍微等待 1-2 分钟的时间(机器配置高的话可能时间更短)。
@ -49,7 +62,7 @@ docker-compose up -d mysql redis minio
> 下面命令是在 playedu-docker-compose 目录执行
```
docker-compose up -d playedu
sudo docker-compose up -d playedu
```
执行完成之后,等待 15s 左右的时间就可以访问了。

2
data/minio/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*
!.gitignore

2
data/mysql/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*
!.gitignore

2
data/redis/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*
!.gitignore

View File

@ -23,12 +23,11 @@ volumes:
driver: local
services:
### PlayEdu ################################################
playedu:
image: registry.cn-hangzhou.aliyuncs.com/playedu/light:1.2
image: registry.cn-hangzhou.aliyuncs.com/playedu/light:1.6
restart: always
# volumes:
# - ./data/logs/nginx:/var/log/nginx
volumes:
- ./data/logs/nginx:/var/log/nginx
environment:
- DB_HOST=mysql
- DB_PORT=3306
@ -38,6 +37,8 @@ services:
- REDIS_HOST=redis
- REDIS_PASS=playeduxyz
- REDIS_PORT=6379
- REDIS_DB=2
- SA_TOKEN_IS_CONCURRENT=false
- SA_TOKEN_JWT_SECRET_KEY=${PLAYEDU_JWT_KEY:-playeduxyz}
ports:
- "${PLAYEDU_API_PORT:-9700}:80"
@ -52,19 +53,17 @@ services:
- minio
logging: *default-logging
### Redis ################################################
redis:
build: ./redis
restart: always
# volumes:
# - ./data/redis:/data
volumes:
- ./data/redis:/data
ports:
- "${REDIS_PORT:-16379}:6379"
networks:
- backend
logging: *default-logging
### MySQL ################################################
mysql:
build: ./mysql
restart: always
@ -72,15 +71,14 @@ services:
- MYSQL_DATABASE=playedu
- MYSQL_ROOT_PASSWORD=playeduxyz
- TZ=UTC
# volumes:
# - ./data/mysql:/var/lib/mysql
volumes:
- ./data/mysql:/var/lib/mysql
ports:
- "${MYSQL_PORT:-33063}:3306"
networks:
- backend
logging: *default-logging
### Minio ################################################
minio:
image: bitnami/minio:latest
restart: always
@ -88,8 +86,8 @@ services:
- MINIO_ROOT_USER=${MINIO_ROOT_USER:-username}
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD:-password}
- MINIO_DEFAULT_BUCKETS=${MINIO_BUCKETS:-playedu:public}
# volumes:
# - ./data/minio/data:/data
volumes:
- ./data/minio/data:/bitnami/minio/data
ports:
- "${MINIO_PORT:-9002}:9000"
- "${MINIO_CONSOLE_PORT:-50002}:9001"

View File

@ -1,6 +1,4 @@
FROM mysql:5.7.42
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
FROM mysql:8.1
# 时区配置
ARG TZ=UTC
@ -10,9 +8,6 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ >/etc/timezone &&
# 复制自定义的my.cnf
COPY my.cnf /etc/mysql/conf.d/my.cnf
# 初始化数据库
COPY docker-entrypoint-initdb.d /docker-entrypoint-initdb.d
# my.cnf只读权限
RUN chmod 0444 /etc/mysql/conf.d/my.cnf

View File

@ -1,468 +0,0 @@
# ************************************************************
# Sequel Pro SQL dump
# Version 4541
#
# http://www.sequelpro.com/
# https://github.com/sequelpro/sequelpro
#
# Host: 127.0.0.1 (MySQL 5.6.51)
# Database: playedu
# Generation Time: 2023-04-06 03:00:20 +0000
# ************************************************************
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
# Dump of table admin_logs
# ------------------------------------------------------------
CREATE TABLE `admin_logs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`admin_id` int(11) NOT NULL DEFAULT '0' COMMENT '管理员ID',
`module` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '模块',
`opt` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '操作指令',
`remark` mediumtext COLLATE utf8mb4_unicode_ci COMMENT '备注',
`ip` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'ip',
`ip_area` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '地址',
`created_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `a_m_o` (`admin_id`,`module`,`opt`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table admin_permissions
# ------------------------------------------------------------
CREATE TABLE `admin_permissions` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '类型[行为:action,数据:data]',
`group_name` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '分组',
`sort` int(11) NOT NULL COMMENT '升序',
`name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '权限名',
`slug` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'slug',
`created_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table admin_role_permission
# ------------------------------------------------------------
CREATE TABLE `admin_role_permission` (
`role_id` int(11) unsigned NOT NULL DEFAULT '0',
`perm_id` int(10) unsigned NOT NULL DEFAULT '0',
KEY `role_id` (`role_id`),
KEY `perm_id` (`perm_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table admin_roles
# ------------------------------------------------------------
CREATE TABLE `admin_roles` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '角色名',
`slug` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'slug',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `slug` (`slug`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `admin_roles` (`name`, `slug`, `created_at`, `updated_at`)
VALUES
('超级管理角色', 'super-role', '2023-02-24 06:19:15', '2023-02-24 06:19:15');
# Dump of table admin_user_role
# ------------------------------------------------------------
CREATE TABLE `admin_user_role` (
`admin_id` int(11) unsigned NOT NULL DEFAULT '0',
`role_id` int(10) unsigned NOT NULL DEFAULT '0',
KEY `admin_id` (`admin_id`),
KEY `role_id` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `admin_user_role` (`admin_id`, `role_id`)
VALUES
(1, 1);
# Dump of table admin_users
# ------------------------------------------------------------
CREATE TABLE `admin_users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '姓名',
`email` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱',
`password` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码',
`salt` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'Salt',
`login_ip` varchar(15) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '登录IP',
`login_at` timestamp NULL DEFAULT NULL COMMENT '登录时间',
`is_ban_login` tinyint(4) NOT NULL DEFAULT '0' COMMENT '1禁止登录,0否',
`login_times` int(11) NOT NULL DEFAULT '0' COMMENT '登录次数',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `administrators_email_unique` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `admin_users` (`name`, `email`, `password`, `salt`, `login_ip`, `login_at`, `is_ban_login`, `login_times`, `created_at`, `updated_at`)
VALUES
('超级管理员', 'admin@playedu.xyz', 'd771587aa711961304fa8c1a5273f491', 'VROkTh', '', '2023-04-06 16:51:17', 0, 0, '2023-02-19 18:10:12', '2023-04-06 16:51:17');
# Dump of table app_config
# ------------------------------------------------------------
CREATE TABLE `app_config` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`group_name` varchar(24) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '分组',
`name` varchar(24) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名称',
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '升序',
`field_type` varchar(24) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '字段类型',
`key_name` varchar(188) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '',
`key_value` longtext COLLATE utf8mb4_unicode_ci COMMENT '',
`option_value` text COLLATE utf8mb4_unicode_ci COMMENT '可选值',
`is_private` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否私密信息',
`help` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '帮助信息',
`created_at` timestamp NULL DEFAULT NULL,
`is_hidden` tinyint(4) NOT NULL DEFAULT '0' COMMENT '1显示,0否',
PRIMARY KEY (`id`),
UNIQUE KEY `app_config_key_unique` (`key_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table course_chapters
# ------------------------------------------------------------
CREATE TABLE `course_chapters` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`course_id` int(11) NOT NULL DEFAULT '0' COMMENT '课程ID',
`name` varchar(64) NOT NULL DEFAULT '' COMMENT '章节名',
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '升序',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table course_department
# ------------------------------------------------------------
CREATE TABLE `course_department` (
`course_id` int(11) NOT NULL DEFAULT '0',
`dep_id` int(11) NOT NULL DEFAULT '0',
KEY `course_id` (`course_id`),
KEY `dep_id` (`dep_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table course_hour
# ------------------------------------------------------------
CREATE TABLE `course_hour` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`course_id` int(11) NOT NULL DEFAULT '0' COMMENT '课程ID',
`chapter_id` int(11) NOT NULL DEFAULT '0' COMMENT '章节ID',
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '升序',
`title` varchar(255) NOT NULL DEFAULT '' COMMENT '课时名',
`type` varchar(20) NOT NULL DEFAULT '' COMMENT '课时类型',
`rid` int(11) NOT NULL DEFAULT '0' COMMENT '资源id',
`duration` int(11) NOT NULL COMMENT '时长[s]',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `course_id` (`course_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table courses
# ------------------------------------------------------------
CREATE TABLE `courses` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL DEFAULT '' COMMENT '课程标题',
`thumb` varchar(255) NOT NULL DEFAULT '' COMMENT '课程封面',
`charge` int(11) NOT NULL DEFAULT '0' COMMENT '课程价格(分)',
`short_desc` varchar(255) NOT NULL DEFAULT '' COMMENT '简介',
`class_hour` int(11) NOT NULL DEFAULT '0' COMMENT '课时数',
`is_show` tinyint(4) NOT NULL DEFAULT '0' COMMENT '显示[1:是,0:否]',
`is_required` tinyint(4) NOT NULL DEFAULT '0' COMMENT '1:必修,0:选修',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
`deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table departments
# ------------------------------------------------------------
CREATE TABLE `departments` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL DEFAULT '' COMMENT '部门名',
`parent_id` int(11) NOT NULL COMMENT '父id',
`parent_chain` varchar(255) NOT NULL DEFAULT '' COMMENT '父链',
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '升序',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table resource_categories
# ------------------------------------------------------------
CREATE TABLE `resource_categories` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`parent_id` int(11) NOT NULL DEFAULT '0',
`parent_chain` varchar(2550) NOT NULL DEFAULT '',
`name` varchar(64) NOT NULL DEFAULT '' COMMENT '分类名',
`sort` int(11) NOT NULL COMMENT '升序',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table resource_category
# ------------------------------------------------------------
CREATE TABLE `resource_category` (
`cid` int(11) NOT NULL DEFAULT '0',
`rid` int(11) NOT NULL,
KEY `cid` (`cid`),
KEY `rid` (`rid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table resource_course_category
# ------------------------------------------------------------
CREATE TABLE `resource_course_category` (
`course_id` int(11) NOT NULL DEFAULT '0',
`category_id` int(11) NOT NULL DEFAULT '0',
KEY `course_id` (`course_id`),
KEY `category_id` (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table resource_videos
# ------------------------------------------------------------
CREATE TABLE `resource_videos` (
`rid` int(11) unsigned NOT NULL,
`poster` varchar(255) NOT NULL DEFAULT '' COMMENT '封面',
`duration` int(10) unsigned NOT NULL COMMENT '视频时长[s]',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
UNIQUE KEY `rid` (`rid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table resources
# ------------------------------------------------------------
CREATE TABLE `resources` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`admin_id` int(11) NOT NULL DEFAULT '0',
`type` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '类型',
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '资源名',
`extension` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '文件类型',
`size` bigint(20) DEFAULT '0' COMMENT '大小[字节]',
`disk` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '存储磁盘',
`file_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '文件id',
`path` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '相对地址',
`url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'URL地址',
`created_at` timestamp NULL DEFAULT NULL,
`parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '所属素材',
`is_hidden` tinyint(4) NOT NULL DEFAULT '0' COMMENT '隐藏[0:否,1:是]',
PRIMARY KEY (`id`),
KEY `type` (`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
# Dump of table user_course_hour_records
# ------------------------------------------------------------
CREATE TABLE `user_course_hour_records` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT '0',
`course_id` int(11) NOT NULL DEFAULT '0',
`hour_id` int(11) NOT NULL DEFAULT '0',
`total_duration` int(11) NOT NULL DEFAULT '0' COMMENT '总时长',
`finished_duration` int(11) NOT NULL DEFAULT '0' COMMENT '已完成时长',
`real_duration` int(11) NOT NULL DEFAULT '0' COMMENT '实际观看时长',
`is_finished` tinyint(4) DEFAULT NULL COMMENT '是否看完[1:是,0:否]',
`finished_at` timestamp NULL DEFAULT NULL COMMENT '看完时间',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `u_h_c_id` (`user_id`,`hour_id`,`course_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table user_course_records
# ------------------------------------------------------------
CREATE TABLE `user_course_records` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT '0',
`course_id` int(11) NOT NULL DEFAULT '0',
`hour_count` int(11) NOT NULL DEFAULT '0' COMMENT '课时数量',
`finished_count` int(11) NOT NULL DEFAULT '0' COMMENT '已完成课时数',
`progress` int(11) NOT NULL DEFAULT '0' COMMENT '进度',
`is_finished` tinyint(4) NOT NULL DEFAULT '0' COMMENT '看完[1:是,0:否]',
`finished_at` timestamp NULL DEFAULT NULL COMMENT '看完时间',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table user_department
# ------------------------------------------------------------
CREATE TABLE `user_department` (
`user_id` int(11) unsigned NOT NULL DEFAULT '0',
`dep_id` int(11) unsigned NOT NULL DEFAULT '0',
KEY `user_id` (`user_id`),
KEY `dep_id` (`dep_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table user_learn_duration_records
# ------------------------------------------------------------
CREATE TABLE `user_learn_duration_records` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT '0',
`created_date` date NOT NULL,
`duration` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '已学习时长[微秒]',
`start_at` timestamp NULL DEFAULT NULL COMMENT '开始时间',
`end_at` timestamp NULL DEFAULT NULL COMMENT '结束时间',
`course_id` int(11) NOT NULL DEFAULT '0',
`hour_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `u_d` (`user_id`,`created_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table user_learn_duration_stats
# ------------------------------------------------------------
CREATE TABLE `user_learn_duration_stats` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT '0',
`duration` bigint(20) NOT NULL DEFAULT '0',
`created_date` date NOT NULL,
PRIMARY KEY (`id`),
KEY `u_d` (`user_id`,`created_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table user_login_records
# ------------------------------------------------------------
CREATE TABLE `user_login_records` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`jti` varchar(64) NOT NULL DEFAULT '' COMMENT 'JTI',
`ip` varchar(15) NOT NULL DEFAULT '' COMMENT '登录ip',
`ip_area` varchar(64) NOT NULL DEFAULT '' COMMENT 'Ip解析区域',
`browser` varchar(64) NOT NULL DEFAULT '' COMMENT '浏览器',
`browser_version` varchar(64) NOT NULL DEFAULT '' COMMENT '浏览器版本',
`os` varchar(128) NOT NULL DEFAULT '' COMMENT '操作系统',
`expired` bigint(20) NOT NULL DEFAULT '0' COMMENT '过期时间',
`is_logout` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否注销',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `jti` (`jti`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table user_upload_image_logs
# ------------------------------------------------------------
CREATE TABLE `user_upload_image_logs` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT '0',
`typed` varchar(32) NOT NULL DEFAULT '' COMMENT '图片类型',
`scene` varchar(24) NOT NULL DEFAULT '' COMMENT '上传场景',
`driver` varchar(32) NOT NULL DEFAULT '' COMMENT '驱动',
`path` varchar(255) NOT NULL DEFAULT '' COMMENT '相对路径',
`url` varchar(255) NOT NULL DEFAULT '' COMMENT '访问地址',
`size` bigint(20) NOT NULL COMMENT '大小,单位:字节',
`name` varchar(255) NOT NULL DEFAULT '' COMMENT '文件名',
`created_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# Dump of table users
# ------------------------------------------------------------
CREATE TABLE `users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(32) NOT NULL DEFAULT '' COMMENT '邮件',
`name` varchar(24) NOT NULL DEFAULT '' COMMENT '真实姓名',
`avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '头像',
`password` varchar(128) NOT NULL DEFAULT '' COMMENT '密码',
`salt` varchar(12) NOT NULL DEFAULT '' COMMENT 'salt',
`id_card` varchar(64) NOT NULL DEFAULT '' COMMENT '身份证号',
`credit1` int(11) NOT NULL DEFAULT '0' COMMENT '学分',
`create_ip` varchar(15) NOT NULL DEFAULT '' COMMENT '注册Ip',
`create_city` varchar(32) NOT NULL DEFAULT '' COMMENT '注册城市',
`is_active` tinyint(4) NOT NULL DEFAULT '0' COMMENT '激活[1:是,0:否]',
`is_lock` tinyint(4) NOT NULL DEFAULT '0' COMMENT '锁定[1:是,0:否]',
`is_verify` tinyint(4) NOT NULL DEFAULT '0' COMMENT '实名认证[1:是,0:否]',
`verify_at` timestamp NULL DEFAULT NULL COMMENT '实名认证时间',
`is_set_password` tinyint(4) NOT NULL DEFAULT '0' COMMENT '设置密码[1:是,0:否]',
`login_at` timestamp NULL DEFAULT NULL COMMENT '登录时间',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

View File

@ -4,8 +4,9 @@
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysql]
default-character-set=utf8mb4
[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
character-set-server=utf8
character-set-server=utf8mb4
default-authentication-plugin=mysql_native_password

View File

@ -1,6 +1,4 @@
FROM redis:7.0.2
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
FROM redis:7.0.12
COPY redis.conf /usr/local/etc/redis/redis.conf