diff --git a/Dockerfile b/Dockerfile index 12f019c..59869d6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,8 +10,8 @@ RUN yum update -y && yum install epel-release -y && yum update -y && yum install #WORKDIR /var/www/ # 2. 准备python -RUN wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz -RUN xz -d Python-3.6.4.tar.xz && tar xvf Python-3.6.4.tar && cd Python-3.6.4 && ./configure && make && make install +RUN wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz +RUN xz -d Python-3.6.6.tar.xz && tar xvf Python-3.6.6.tar && cd Python-3.6.6 && ./configure && make && make install # 3. 安装yum依赖 @@ -20,14 +20,17 @@ RUN mkdir -p /var/www/ ADD . /var/www/do_cron/ # 5. 安装pip依赖 -RUN pip3 install --upgrade pip +RUN pip3 install --user --upgrade pip RUN pip3 install -U git+https://github.com/ss1917/ops_sdk.git RUN pip3 install -r /var/www/do_cron/doc/requirements.txt -# 6. 日志 +# 6. 初始化生成表结构 +RUN python3 /var/www/do_cron/db_sync.py + +# 7. 日志 VOLUME /var/log/ -# 7. 准备文件 +# 8. 准备文件 COPY doc/supervisor_ops.conf /etc/supervisord.conf EXPOSE 9900 diff --git a/README.md b/README.md index 062af90..18564d3 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,10 @@ ### 部署文档 > 本服务只能启用一个进程 +#### 创建数据库 +```sql +create database `do_cron` default character set utf8mb4 collate utf8mb4_unicode_ci; +``` #### 一、docker-compose 安装(推荐) @@ -61,7 +65,10 @@ > 建议使用虚拟环境 - 修改配置文件 -- 安装依赖 pip3 install -r doc/requirements.txt +- 安装依赖 具体参考 Dockerfile +- - pip3 install --user --upgrade pip +- - pip3 install -U git+https://github.com/ss1917/ops_sdk.git +- - pip3 install -r /var/www/do_cron/doc/requirements.txt - 从doc目录获取supervisor配置文件 使用 supervisor启动 supervisorctl reload #### 三、测试api diff --git a/db_sync.py b/db_sync.py new file mode 100644 index 0000000..f8b71b7 --- /dev/null +++ b/db_sync.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +Contact : 191715030@qq.com +Author : shenshuo +Date : 2018/12/24 +Desc : +""" + +from models.cron import Base +from websdk.consts import const +from settings import settings as app_settings +# ORM创建表结构 +from sqlalchemy import create_engine + +default_configs = app_settings[const.DB_CONFIG_ITEM][const.DEFAULT_DB_KEY] +engine = create_engine('mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8' % ( + default_configs.get(const.DBUSER_KEY), + default_configs.get(const.DBPWD_KEY), + default_configs.get(const.DBHOST_KEY), + default_configs.get(const.DBPORT_KEY), + default_configs.get(const.DBNAME_KEY), +), encoding='utf-8', echo=True) + + +def create(): + Base.metadata.create_all(engine) + print('[Success] 表结构创建成功!') + + +def drop(): + Base.metadata.drop_all(engine) + + +if __name__ == '__main__': + create() diff --git a/doc/data.sql b/doc/data.sql deleted file mode 100644 index 85d3e08..0000000 --- a/doc/data.sql +++ /dev/null @@ -1,11 +0,0 @@ -create database `shenshuo` default character set utf8mb4 collate utf8mb4_unicode_ci; - - CREATE TABLE `cron_log` ( - `log_id` int(11) NOT NULL AUTO_INCREMENT, - `job_id` varchar(30) DEFAULT NULL, - `status` varchar(10) DEFAULT NULL, - `task_cmd` varchar(120) DEFAULT NULL, - `task_log` text, - `exec_time` datetime DEFAULT NULL, - PRIMARY KEY (`log_id`) -) ENGINE=InnoDB AUTO_INCREMENT=8085 DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/settings.py b/settings.py index 6cf7bcd..e72b9f6 100644 --- a/settings.py +++ b/settings.py @@ -19,13 +19,13 @@ DEFAULT_DB_DBPORT = os.getenv('DEFAULT_DB_DBPORT', '3306') DEFAULT_DB_DBUSER = os.getenv('DEFAULT_DB_DBUSER', 'root') DEFAULT_DB_DBPWD = os.getenv('DEFAULT_DB_DBPWD', 'ljXrcyn7chaBU4F') -DEFAULT_DB_DBNAME = os.getenv('DEFAULT_DB_DBNAME', 'shenshuo') +DEFAULT_DB_DBNAME = os.getenv('DEFAULT_DB_DBNAME', 'do_cron') READONLY_DB_DBHOST = os.getenv('READONLY_DB_DBHOST', '172.16.0.223') READONLY_DB_DBPORT = os.getenv('READONLY_DB_DBPORT', '3306') READONLY_DB_DBUSER = os.getenv('READONLY_DB_DBUSER', 'root') READONLY_DB_DBPWD = os.getenv('READONLY_DB_DBPWD', 'ljXrcyn7chaBU4F') -READONLY_DB_DBNAME = os.getenv('READONLY_DB_DBNAME', 'shenshuo') +READONLY_DB_DBNAME = os.getenv('READONLY_DB_DBNAME', 'do_cron') DEFAULT_REDIS_HOST = os.getenv('DEFAULT_REDIS_HOST', '172.16.0.223') DEFAULT_REDIS_PORT = os.getenv('DEFAULT_REDIS_PORT', '6379')