docker-compose搭建playedu培训系统
一、环境准备
1.1 安装docker
使用官方脚本安装或者使用docker仓库进行安装,以下两种方法自己选择,有官网脚本在一些系统上可能无法运行,请选择docker仓库进行安装。
1.1.1. 官方脚本安装
# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
1.1.2. 手动安装
卸载旧版本
# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
使用docker仓库进行docker安装
# yum install -y yum-utils
# yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
1.2 安装docker-compose
# curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
测试是否安装成功
# docker-compose version
cker-compose version 1.24.1, build 4667896b
二、 搭建playedu
2.1 下载playedu-docker-compose仓库
# git clone -b 1.5.1 https://gitee.com/playeduxyz/compose.git playedu-docker-compose
2.2 构建镜像
# cd playedu-docker-compose
# docker-compose build
2.3 修改docker-compose.yaml文件
添加privileged参数,修改后的文件如下:
version: "3.5"
x-logging: &default-logging
driver: "json-file"
options:
max-size: "10m"
max-file: "10"
networks:
backend:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.10.10.0/24
volumes:
mysql:
driver: local
redis:
driver: local
minio:
driver: local
services:
playedu:
image: registry.cn-hangzhou.aliyuncs.com/playedu/light:1.6
restart: always
privileged: true
volumes:
- ./data/logs/nginx:/var/log/nginx
environment:
- DB_HOST=mysql
- DB_PORT=3306
- DB_NAME=playedu
- DB_USER=root
- DB_PASS=playeduxyz
- REDIS_HOST=redis
- REDIS_PASS=NFSchina@123!
- 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"
- "${PLAYEDU_PC_PORT:-9800}:9800"
- "${PLAYEDU_H5_PORT:-9801}:9801"
- "${PLAYEDU_ADMIN_PORT:-9900}:9900"
networks:
- backend
depends_on:
- mysql
- redis
- minio
logging: *default-logging
redis:
build: ./redis
restart: always
privileged: true
volumes:
- ./data/redis:/data
ports:
- "${REDIS_PORT:-6379}:6379"
networks:
- backend
logging: *default-logging
mysql:
build: ./mysql
restart: always
privileged: true
environment:
- MYSQL_DATABASE=playedu
- MYSQL_ROOT_PASSWORD=playeduxyz
- TZ=UTC
volumes:
- ./data/mysql:/var/lib/mysql
ports:
- "${MYSQL_PORT:-3306}:3306"
networks:
- backend
logging: *default-logging
minio:
image: bitnami/minio:latest
restart: always
privileged: true
environment:
- 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:/bitnami/minio/data
ports:
- "${MINIO_PORT:-9002}:9000"
- "${MINIO_CONSOLE_PORT:-50002}:9001"
networks:
- backend
logging: *default-logging
2.4 修改.env文件
# cd playedu-docker-compose
# cp .env.example .env
对端口账号密码等进行修改,如下:
################# PlayEdu ###################
PLAYEDU_API_PORT=9700
PLAYEDU_PC_PORT=9800
PLAYEDU_H5_PORT=9801
PLAYEDU_ADMIN_PORT=9900
PLAYEDU_JWT_KEY=playeduxyz
################# MySQL ###################
MYSQL_PORT=3306
################# Redis ###################
REDIS_PORT=6379
################# MINIO ###################
MINIO_ROOT_USER=username
MINIO_ROOT_PASSWORD=password
MINIO_PORT=9002
MINIO_CONSOLE_PORT=50002
MINIO_BUCKETS=playedu:public
2.5 运行mysql、redis、minio
# chmod a+rwx data
# docker-compose up -d mysql redis minio
minio运行之后需要再次为data目录添加权限
# chmod a+rwx data -R
执行上述命令会很快返回结果,但是这并不意味着上述三个软件就已经成功的运行了。它们的初始化运行都需要一段过程,这里我们稍微等待 1-2 分钟的时间(机器配置高的话可能时间更短)。
2.6 运行playedu
# cd playedu-docker-compose
docker-compose up -d playedu
执行完成之后,等待 15s 左右的时间就可以访问了。
三 、 配置minio
浏览器打开 http://你的服务器IP:9900 ,在登录窗口输入账号 admin@playedu.xyz 和密码 playedu 进入到后台,然后打开系统配置,选择 MinIO 配置,请填入下表的内容并保存:
配置项 | 需要配置的值 |
---|---|
AccessKey |
username (.env中配置的minio账号) |
SecretKey |
password (.enc中配置的minio密码) |
Bucket | playedu |
Endpoint | http://你的服务器IP:9002 |
Domain | http://你的服务器IP:9002 |
链接
平台 | 地址 | 默认账号 | 密码 |
---|---|---|---|
API 服务 | http://你的服务器IP:9700 |
- | - |
PC 学员端口 | http://你的服务器IP:9800 |
- | - |
H5 学员端口 | http://你的服务器IP:9801 |
- | - |
后台管理端口 | http://你的服务器IP:9900 |
admin@playedu.xyz |
playedu |
MinIO 管理端口 | http://你的服务器IP:50002 |
username |
password |