更新docker文档

main
周平 10 months ago
parent 1c04b32028
commit 171f891d63

@ -0,0 +1,55 @@
FROM 192.168.10.94:5000/generalai:v1
# Set timezone
ENV TZ=Asia/Shanghai
# Install necessary packages
RUN apt-get update && apt-get install -y \
# python3-pip \
# mysql-client \
default-mysql-client \
redis-tools \
&& apt-get clean
# ENV APP_HOME=/app/lemon
RUN mkdir -p /app/lemon
RUN mkdir -p /app/fileupload
RUN mkdir -p /app/log
# Set working directory
WORKDIR /app/lemon
# Copy application files
COPY website/ ./website/
COPY dist/ ./dist/
# COPY mysql_app.sql /app/lemon/
# Copy init script and make it executable
# COPY mysql_init.sh /app/lemon/
# RUN chmod +x /app/lemon/mysql_init.sh
# Install Python dependencies
# RUN pip3 install -r /app/lemon/website/requirements.txt
# Copy supervisor configuration
COPY supervisor.conf /etc/supervisor/conf.d/lemon.conf
# Copy nginx configuration
# COPY nginx.conf /etc/nginx/sites-available/lemon
# RUN ln -s /etc/nginx/sites-available/lemon /etc/nginx/sites-enabled/
# COPY entrypoint.sh /app/lemon/entrypoint.sh
# RUN chmod +x /app/lemon/entrypoint.sh
COPY entrypoint.sh /
RUN sed -i 's/\r//' /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Expose port
EXPOSE 80
# VOLUME /data
# Start services
# ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
ENTRYPOINT []

@ -0,0 +1,295 @@
## 工程目录
```commandline
├── Dockerfile
├── docker-compose.yml
├── entrypoint.sh
├── mysql_app.sql
├── mysql_auth.sql
├── nginx.conf
├── supervisord.conf
└── website
├── db
├── handlers
├── service
├── util
├── app.py
├── url.py
├── handler.py
└── dist
├── index.html
├── ...
```
## Dockerfile
```bash
# generalai:v1是镜像名192.168.10.94:5000是镜像仓库docker registry本地地址
FROM 192.168.10.94:5000/generalai:v1
# Set timezone
ENV TZ=Asia/Shanghai
# Install necessary packages
RUN apt-get update && apt-get install -y \
# python3-pip \
# mysql-client \
default-mysql-client \
redis-tools \
&& apt-get clean
RUN mkdir -p /app/lemon
RUN mkdir -p /app/fileupload
RUN mkdir -p /app/log
# Set working directory设置工作目录之后COPY命令的目标目录就是workdir指定的目录
WORKDIR /app/lemon
# Copy application files
# 拷贝工程文件,将工程文件拷贝到镜像的指定目录下,如果拷贝完整目录,需要使用"website/",不能使用"website/*"
COPY website/ ./website/
COPY dist/ ./dist/
# COPY mysql_app.sql /app/lemon/
# Install Python dependencies
# RUN pip3 install -r /app/lemon/website/requirements.txt
# Copy supervisor configuration
COPY supervisor.conf /etc/supervisor/conf.d/lemon.conf
# Copy nginx configuration
# COPY nginx.conf /etc/nginx/sites-available/lemon
# RUN ln -s /etc/nginx/sites-available/lemon /etc/nginx/sites-enabled/
# COPY entrypoint.sh /app/lemon/entrypoint.sh
# RUN chmod +x /app/lemon/entrypoint.sh
# 拷贝entrypoint.sh文件将entrypoint.sh文件拷贝到镜像根目录下
COPY entrypoint.sh /
RUN sed -i 's/\r//' /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Expose port
EXPOSE 80
# VOLUME /data
# Start services
# ENTRYPOINT留空入口文件entrypoint.sh配置在docker-compose.yml中由docker-compose执行
ENTRYPOINT []
```
编译
```shell
# docker build便于移植
docker build -t lemon:latest .
docker images 查看生成的镜像 lemon:latest
```
## docker-compose.yml
```shell
version: "3.3"
services:
web:
# build: .
working_dir: /app/lemon/website # 设置工作目录不设置会导致程序import错误
image: lemon:latest
tty:
true
container_name: lemon_web
privileged: true
# ports:
# - "80:80"
# - "8989:8989"
volumes:
# - /data/app/lemon:/app/lemon # 如果由相同的设置则会覆盖Dockfile中COPY的文件
- /data/app/log:/app/log
- /data/app/fileupload:/app/fileupload
environment:
- TZ=Asia/Shanghai
networks: # 配置网络
- lemon_network
depends_on:
- mysql
- redis
# 执行entrypoint.sh文件并执行supervisord启动服务
command: sh -c "/entrypoint.sh && /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf"
nginx:
image: nginx:latest
container_name: lemon_nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/lemon.conf # 挂载配置文件
- ./dist:/app/lemon/dist # 挂载前端目录
depends_on:
- web
networks:
- lemon_network
mysql:
image: mysql:8.0
container_name: lemon_mysql
ports:
- "13306:3306"
environment:
MYSQL_ROOT_PASSWORD: SghjdA887# # 设置root用户密码
MYSQL_DATABASE: aiplatform # 设置数据库
volumes:
- /data/mysql_data:/var/lib/mysql # 挂载数据目录
- ./mysql_auth.sql:/docker-entrypoint-initdb.d/auth.sql # 挂载权限初始化sql
- ./mysql_app.sql:/docker-entrypoint-initdb.d/app.sql # 挂载数据库初始化sql
networks:
- lemon_network
redis:
image: redis:latest
container_name: lemon_redis
ports:
- "16379:6379"
command: redis-server --requirepass hgkiYY87 # 设置密码
volumes:
- /data/redis_data:/data
networks:
- lemon_network
#volumes:
# mysql_data:
# redis_data:
networks:
lemon_network:
driver: bridge # 如果不设置则默认使用bridge
```
## entrypoint.sh
```bash
#!/bin/bash
# 初始化数据库mysql_app.sql通过挂载的方式初始化所以本处的代码注释掉了
#if [ -f "/app/lemon/mysql_app.sql" ];then
# echo "Initializing MySQL database..."
# # 初始化数据库, -p 表示使用密码登录,请使用实际的密码
# mysql -h lemon_mysql -u root -pxxx aiplatform < /app/lemon/mysql_app.sql
# echo "MySQL initialization completed."
#else
# echo "Mysql init errorinit sql file does not exist"
#fi
# 更新配置文件
if [ ! -f "/app/lemon/website/settings_local.py" ];then
echo "@@init settings_local file"
cat > /app/lemon/website/settings_local.py << EOF
mysql_app = {
"host": "lemon_mysql:3306", # docker-compose中设置了相同的networks可以直接使用lemon_mysql:3306访问
"database": "aiplatform",
"user": "root",
"password": "xxx", # 请替换为实际的密码
"time_zone": "+8:00"
}
redis_app = ("lemon_redis", 6379, 0, "xxxx") # 请替换为实际的密码
EOF
fi
# 设置要列出的目录
dir_path="/app/lemon"
# 函数,递归打印目录结构
function print_dir_structure() {
local dir="$1"
local indent="$2"
# 打印当前目录
echo "$indent$(basename "$dir")"
# 遍历目录下的所有项目
for item in "$dir"/*
do
# 如果是目录,递归打印
if [ -d "$item" ]; then
print_dir_structure "$item" "$indent "
# 如果是文件,打印文件名
elif [ -f "$item" ]; then
echo "$indent $(basename "$item")"
fi
done
}
# print_dir_structure "$dir_path" "-"
# 启动Tornado应用程序
#echo "启动Tornado应用程序"
#if [ -f "/app/lemon/website/app.py" ];then
# echo "@@app.py存在"
# python /app/lemon/website/app.py --port=8889 >> /app/log/lemon.log 2>&1
#else
# echo "app.py文件错误文件不存在"
#fi
echo "启动完成"
```
## mysql初始化
```
mysql_app.sql, 数据库的结构,以及默认账号的初始化
mysql_auth.sql 修改密码加密规格,修改密码
```
## nginx
```
server {
listen 80;
server_name 192.168.10.94;
root /app/lemon/dist; # 静态文件目录,请替换为实际的路径
location ^~ /api {
proxy_pass http://lemon_web:8989; # lemon_web为容器的默认host
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
try_files $uri $uri/ /index.html;
}
}
```
## supervisor
```
[program:lemon]
directory=/app/lemon/website
command=python /app/lemon/website/app.py --port=8989
numprocs=1
process_name=%(program_name)s_%(process_num)02d
autorestart=true
autostart=true
startsecs=5
redirect_stderr=true
stdout_logfile=/app/log/app_%(process_num)02d.log
```
```
command 可以使用动态参数,例如:--port=88%(process_num)02d默认进程使用8800端口
多进程则修改numproc的值如numproc=2则第一个进程使用8800端口第二个进程使用8801端口。
```
## 启动
```
1. 修改配置文件
2. 编译docker build -t lemon .
3. docker-compose up -d
```

@ -0,0 +1,74 @@
version: "3.3"
services:
web:
# build: .
working_dir: /app/lemon/website
image: lemon:latest
tty:
true
container_name: lemon_web
privileged: true
# ports:
# - "80:80"
# - "8989:8989"
volumes:
# - /data/app/lemon:/app/lemon
- /data/app/log:/app/log
- /data/app/fileupload:/app/fileupload
environment:
- TZ=Asia/Shanghai
networks:
- lemon_network
depends_on:
- mysql
- redis
command: sh -c "/entrypoint.sh && /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf"
nginx:
image: nginx:latest
container_name: lemon_nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/lemon.conf
- ./dist:/app/lemon/dist
depends_on:
- web
networks:
- lemon_network
mysql:
image: mysql:8.0
container_name: lemon_mysql
ports:
- "13306:3306"
environment:
MYSQL_ROOT_PASSWORD: SghjdA887#
MYSQL_DATABASE: aiplatform
volumes:
- /data/mysql_data:/var/lib/mysql
- ./mysql_auth.sql:/docker-entrypoint-initdb.d/auth.sql
- ./mysql_app.sql:/docker-entrypoint-initdb.d/app.sql
networks:
- lemon_network
redis:
image: redis:latest
container_name: lemon_redis
ports:
- "16379:6379"
command: redis-server --requirepass hgkiYY87
volumes:
- /data/redis_data:/data
networks:
- lemon_network
#volumes:
# mysql_data:
# redis_data:
networks:
lemon_network:
driver: bridge

@ -0,0 +1,72 @@
#!/bin/bash
# 初始化数据库
#if [ -f "/app/lemon/mysql_app.sql" ];then
# echo "Initializing MySQL database..."
# # 初始化数据库
# mysql -h lemon_mysql -u root -pSghjdA887# aiplatform < /app/lemon/mysql_app.sql
# echo "MySQL initialization completed."
#else
# echo "Mysql init errorinit sql file does not exist"
#fi
#search_dir="/app/lemon"
#for entry in `ls $search_dir`; do
# echo "正在加载文件:$entry"
#done
#for entry in "$search_dir"/*; do
# echo "正在加载文件:$(basename "$entry")"
#done
# 更新配置文件
if [ ! -f "/app/lemon/website/settings_local.py" ];then
echo "@@init settings_local file"
cat > /app/lemon/website/settings_local.py << EOF
mysql_app = {
"host": "lemon_mysql:3306",
"database": "aiplatform",
"user": "root",
"password": "SghjdA887#",
"time_zone": "+8:00"
}
redis_app = ("lemon_redis", 6379, 0, "hgkiYY87")
file_upload_dir = "/app/fileupload"
EOF
fi
# 设置要列出的目录
dir_path="/app/lemon"
# 递归打印目录结构
function print_dir_structure() {
local dir="$1"
local indent="$2"
# 打印当前目录
echo "$indent$(basename "$dir")"
# 遍历目录下的所有项目
for item in "$dir"/*
do
# 如果是目录,递归打印
if [ -d "$item" ]; then
print_dir_structure "$item" "$indent "
# 如果是文件,打印文件名
elif [ -f "$item" ]; then
echo "$indent $(basename "$item")"
fi
done
}
# print_dir_structure "$dir_path" "-"
# 启动Tornado应用程序
#echo "启动Tornado应用程序"
#if [ -f "/app/lemon/website/app.py" ];then
# echo "@@app.py存在"
# python /app/lemon/website/app.py --port=8889 >> /app/log/lemon.log 2>&1
#else
# echo "app.py文件错误文件不存在"
#fi
echo "启动完成"

@ -0,0 +1,337 @@
/*
Navicat Premium Data Transfer
Source Server :
Source Server Type : MySQL
Source Server Version : 80036 (8.0.36)
Source Host :
Source Schema :
Target Server Type : MySQL
Target Server Version : 80036 (8.0.36)
File Encoding : 65001
Date: 27/06/2024 14:49:51
*/
CREATE DATABASE /*!32312 IF NOT EXISTS*/`aiplatform` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
USE `aiplatform`;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for device_classification
-- ----------------------------
DROP TABLE IF EXISTS `device_classification`;
CREATE TABLE `device_classification` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '名称',
`suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT 'short uuid',
`del` int NULL DEFAULT 0,
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for enterprise
-- ----------------------------
DROP TABLE IF EXISTS `enterprise`;
CREATE TABLE `enterprise` (
`id` int NOT NULL AUTO_INCREMENT,
`suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`province` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`addr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`industry` int NOT NULL,
`contact` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`summary` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`logo` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
`account` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`pwd` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`del` int NULL DEFAULT 0,
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_suid`(`suid` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '企业信息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for enterprise_alert
-- ----------------------------
DROP TABLE IF EXISTS `enterprise_alert`;
CREATE TABLE `enterprise_alert` (
`id` int NOT NULL AUTO_INCREMENT,
`entity_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`node_id` int NULL DEFAULT NULL,
`node_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`is_sms` tinyint NULL DEFAULT 0,
`sms_to` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`is_email` tinyint NULL DEFAULT 0,
`email_to` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`freq` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `ent_node`(`entity_suid` ASC, `node_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for enterprise_busi_model
-- ----------------------------
DROP TABLE IF EXISTS `enterprise_busi_model`;
CREATE TABLE `enterprise_busi_model` (
`id` int NOT NULL AUTO_INCREMENT,
`suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT 'short uuid',
`entity_id` int NOT NULL COMMENT '企业id',
`entity_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '企业uuid',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`base_models` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '关联的基础模型json list, [{\"id\":123,\"suid\":\"xxx\",\"name\":\"xxx\"},...]',
`business_logic` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '业务代码压缩包的md5',
`business_conf_file` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '业务配置参数压缩包的文件md5',
`business_conf_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '业务配置的参数json字符串eg: \'{\"a\":1, \"b\":2}\'',
`delete` tinyint(1) NULL DEFAULT 0,
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '企业业务模型表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for enterprise_busi_model_node
-- ----------------------------
DROP TABLE IF EXISTS `enterprise_busi_model_node`;
CREATE TABLE `enterprise_busi_model_node` (
`id` int NOT NULL AUTO_INCREMENT,
`suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`entity_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业suid',
`busi_model_id` int NULL DEFAULT NULL,
`busi_model_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`node_id` int NULL DEFAULT NULL,
`node_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for enterprise_busi_model_node_device
-- ----------------------------
DROP TABLE IF EXISTS `enterprise_busi_model_node_device`;
CREATE TABLE `enterprise_busi_model_node_device` (
`id` int NOT NULL AUTO_INCREMENT,
`suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`entity_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业suid',
`node_id` int NULL DEFAULT NULL COMMENT '节点id',
`node_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '节点suid',
`busi_model_id` int NULL DEFAULT NULL COMMENT '业务模型id',
`busi_model_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '业务模型suid',
`device_id` int NULL DEFAULT NULL COMMENT '设备id',
`device_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备suid',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '节点-业务模型-设备关联表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for enterprise_device
-- ----------------------------
DROP TABLE IF EXISTS `enterprise_device`;
CREATE TABLE `enterprise_device` (
`id` int NOT NULL AUTO_INCREMENT,
`suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备suid',
`entity_id` int NOT NULL COMMENT '企业id',
`entity_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '企业suid',
`node_id` int NOT NULL COMMENT '节点id',
`node_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '节点suid',
`classification` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '分类suid',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`addr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`device_model` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '设备型号',
`param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`status` int NULL DEFAULT 1001 COMMENT '1000/all/默认, 1001/在线1002/离线1003/运行中1004/故障',
`del` int NULL DEFAULT 0,
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '企业设备表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for enterprise_node
-- ----------------------------
DROP TABLE IF EXISTS `enterprise_node`;
CREATE TABLE `enterprise_node` (
`id` int NOT NULL AUTO_INCREMENT,
`suid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
`entity_id` int NOT NULL,
`entity_suid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '企业uuid',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '企业name',
`parent` int NULL DEFAULT NULL,
`addr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '地址',
`lola` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '经纬度',
`contact` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '联系人',
`phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '联系方式',
`comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注',
`del` int NULL DEFAULT 0,
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '企业节点表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for enterprise_node_device_bm_cus_conf
-- ----------------------------
DROP TABLE IF EXISTS `enterprise_node_device_bm_cus_conf`;
CREATE TABLE `enterprise_node_device_bm_cus_conf` (
`id` int NOT NULL AUTO_INCREMENT,
`entity_id` int NULL DEFAULT NULL,
`entity_suid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`node_id` int NULL DEFAULT NULL,
`node_suid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`device_id` int NULL DEFAULT NULL,
`device_suid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`busi_model_id` int NULL DEFAULT NULL,
`busi_model_suid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`base_model_id` int NULL DEFAULT NULL,
`base_model_suid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`busi_conf_file` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`busi_conf_str` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`model_hub_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`model_conf_file` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`model_conf_str` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '企业设备关联业务模型下的基础模型自定义配置' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for enterprise_server
-- ----------------------------
DROP TABLE IF EXISTS `enterprise_server`;
CREATE TABLE `enterprise_server` (
`id` int NOT NULL AUTO_INCREMENT,
`suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`entity_id` int NULL DEFAULT NULL,
`entity_suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`port` int NULL DEFAULT NULL,
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`passwd` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`status` int NULL DEFAULT 1001 COMMENT '1000/all/默认, 1001/在线1002/离线,',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for files
-- ----------------------------
DROP TABLE IF EXISTS `files`;
CREATE TABLE `files` (
`id` int NOT NULL AUTO_INCREMENT,
`filename` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
`filepath` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
`md5_str` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
`filesize` int NULL DEFAULT NULL,
`filetype` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`user` int NULL DEFAULT 0,
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '文件表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for model
-- ----------------------------
DROP TABLE IF EXISTS `model`;
CREATE TABLE `model` (
`id` int NOT NULL AUTO_INCREMENT,
`suid` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'short uuid',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
`model_type` int NULL DEFAULT 1002 COMMENT '模型类型1001/经典算法1002/深度学习',
`classification` int NULL DEFAULT 0 COMMENT '模型分类的id',
`comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注',
`default_version` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`del` tinyint(1) NULL DEFAULT 0 COMMENT '删除状态1/删除0/正常',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '模型表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for model_classification
-- ----------------------------
DROP TABLE IF EXISTS `model_classification`;
CREATE TABLE `model_classification` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '模型分类表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for model_hub
-- ----------------------------
DROP TABLE IF EXISTS `model_hub`;
CREATE TABLE `model_hub` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`port` int NULL DEFAULT 0,
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`create_time` datetime NULL DEFAULT NULL,
`update_time` datetime NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '模型运行库表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for model_version
-- ----------------------------
DROP TABLE IF EXISTS `model_version`;
CREATE TABLE `model_version` (
`id` int NOT NULL AUTO_INCREMENT,
`model_id` int NOT NULL,
`version` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
`comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '',
`model_file` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '模型文件的md5',
`config_file` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '模型配置文件的md5',
`config_str` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '模型默认配置参数json字符串',
`is_default` tinyint(1) NULL DEFAULT 0 COMMENT '1/默认0/非默认',
`del` tinyint(1) NULL DEFAULT 0 COMMENT '1/删除0/正常',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '模型版本表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_log
-- ----------------------------
DROP TABLE IF EXISTS `sys_log`;
CREATE TABLE `sys_log` (
`id` int NOT NULL AUTO_INCREMENT,
`user` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`ip` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`primary_menu` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`sub_menu` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`op_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`content` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`comment` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_user
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`id` int NOT NULL AUTO_INCREMENT,
`uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
`pwd` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
`available` tinyint(1) NULL DEFAULT 1,
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统用户表' ROW_FORMAT = Dynamic;
INSERT INTO `sys_user` VALUES (1, 'cbb27e2d10bf400f9044fae4ebdcfd5e', 'admin', 'Lkxs7P9x4ZE7ipU9uYMIJw==', 1, NULL);
SET FOREIGN_KEY_CHECKS = 1;

@ -0,0 +1,6 @@
USE mysql;
-- 修改密码加密规则
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'SghjdA887#';
-- 刷新权限
FLUSH PRIVILEGES;

@ -0,0 +1,16 @@
#!/bin/bash
# Wait for MySQL to be ready
echo "Waiting for MySQL to be ready..."
while ! mysqladmin ping -h"lemon_mysql" --silent; do
sleep 1
done
# Initialize MySQL database
echo "Initializing MySQL database..."
mysql -h lemon_mysql -u root -pSghjdA887# aiplatform < /app/lemon/mysql_app.sql
echo "MySQL initialization completed."
# Start the application
exec "$@"

@ -0,0 +1,18 @@
server {
listen 80;
server_name 192.168.10.94;
root /app/lemon/dist;
location ^~ /api {
proxy_pass http://lemon_web:8989;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
try_files $uri $uri/ /index.html;
}
}

@ -0,0 +1,10 @@
[program:lemon]
directory=/app/lemon/website
command=python /app/lemon/website/app.py --port=8989
numprocs=1
process_name=%(program_name)s_%(process_num)02d
autorestart=true
autostart=true
startsecs=5
redirect_stderr=true
stdout_logfile=/app/log/app_%(process_num)02d.log

@ -50,8 +50,8 @@ class LogoutHandler(APIHandler):
class LoginHandler(APIHandler):
def post(self):
suid = shortuuid.ShortUUID().random(10)
logging.info(suid)
# suid = shortuuid.ShortUUID().random(10)
# logging.info(suid)
username = self.get_escaped_argument("username")
password = self.get_escaped_argument("pwd")
@ -62,10 +62,6 @@ class LoginHandler(APIHandler):
# if wrong_time_lock:
# raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "账号处于冷却期,请稍后再试")
# return
logging.info(self.request.body)
logging.info(self.request.arguments)
logging.info(password)
logging.info("#########################")
if not username or not password:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "请输入用户名和密码")

@ -42,9 +42,9 @@ session_key_prefix = "system:user:jid:%s"
app_get_to_post = False
# system host
host = "https://gap.sst.com"
# host = "https://gap.sst.com"
# api root
api_root = "https://gap.sst.com"
# api_root = "https://gap.sst.com"
api_prefix = "/api/v1"
api_prefix_v2 = "/api/v2"
@ -78,8 +78,8 @@ enterprise_aes_key = "FquMBlcVoIkTAmL7"
file_upload_dir = "/data/fileupload"
rsa_public_file = "/data/app/public"
rsa_license_file = "/data/app/license"
rsa_public_file = "/home/app/public"
rsa_license_file = "/home/app/license"
# hashlib.sha256(base64.b64encode(uuid.uuid4().bytes + uuid.uuid4().bytes)).hexdigest()

Loading…
Cancel
Save