当前位置:   article > 正文

Yearning sql审核平台docker化布署_yearning docker 部署

yearning docker 部署

在一个云主机centos 7上布署线上环境和开发开发两套审核平台。

1、下载yearning sql安装文件; 

git clone https://github.com/cookieY/Yearning.git

2、安装docker,docker-compose;

yum install docker docker-compose -y

3、修改配置文件docker-compose.yml

目录说明:

db_data:存放mysql数据文件;

docker:存放配置文件

init-sql:存放初始化SQL

  1. #tree
  2. ├── db_data /#存放数据文件
  3. ├── docker
  4. │   ├── etc
  5. │   │   └── mysql /#存放数据库配置文件
  6. │   │   └── my.cnf
  7. │   ├── logs
  8. │   └── src /#存放程序配置文件
  9. │   ├── app_dev.js
  10. │   ├── app_prod.js
  11. │   ├── gunicorn_dev.conf
  12. │   ├── gunicorn_prod.conf
  13. │   └── start_yearning.sh
  14. ├── docker-compose.yml
  15. └── init-sql /#存放初始化sql脚本
  16. └── install.sql

docker-compose文件配置:

  1. #cat docker-compose
  2. version: '2'
  3. services:
  4. db:
  5. image: mysql:5.7
  6. volumes:
  7. - ./docker/etc/mysql/:/etc/mysql/conf.d/
  8. - ./db_data/:/var/lib/mysql/
  9. - ./init-sql/:/docker-entrypoint-initdb.d/
  10. restart: always
  11. ports:
  12. - "3306:3306"
  13. environment:
  14. MYSQL_ROOT_PASSWORD: F4rtC7gR<tQq
  15. MYSQL_DATABASE: yearning_prod
  16. MYSQL_USER: yearning
  17. MYSQL_PASSWORD: yearning
  18. yearning_dev:
  19. image: registry.cn-hangzhou.aliyuncs.com/cookie/yearning:v1.3.2
  20. depends_on:
  21. - db
  22. ports:
  23. - "9080:80"
  24. - "9000:8000"
  25. environment:
  26. HOST: localhost
  27. MYSQL_PASSWORD: F4rtC7gR<tQq
  28. MYSQL_USER: root
  29. MYSQL_ADDR: db
  30. MYSQL_DATABASE: yearning_dev
  31. SERVICE_PORT: 8000
  32. volumes:
  33. - ./docker/src/start_yearning.sh:/usr/local/bin/start_yearning.sh
  34. - ./docker/src/gunicorn_dev.conf:/mnt/src/gunicorn.conf
  35. - ./docker/src/app_dev.js:/var/lib/nginx/html/static/js/app.13744d427b5104064225.js
  36. yearning_prod:
  37. image: registry.cn-hangzhou.aliyuncs.com/cookie/yearning:v1.3.2
  38. depends_on:
  39. - db
  40. ports:
  41. - "8080:80"
  42. - "8000:8000"
  43. environment:
  44. HOST: localhost
  45. MYSQL_PASSWORD: F4rtC7gR<tQq
  46. MYSQL_USER: root
  47. MYSQL_ADDR: db
  48. MYSQL_DATABASE: yearning_prod
  49. SERVICE_PORT: 8000
  50. volumes:
  51. - ./docker/src/start_yearning.sh:/usr/local/bin/start_yearning.sh
  52. - ./docker/src/gunicorn_prod.conf:/mnt/src/gunicorn.conf
  53. - ./docker/src/app_prod.js:/var/lib/nginx/html/static/js/app.13744d427b5104064225.js

注意事项:

  • 创建数据库yearning_prod,yearning_dev;
  • 将init-sql的sql导入到以上两个库中。

4、启动docker-compose up -d

  1. Starting yearningdockercompose_db_1 ... done
  2. Recreating yearningdockercompose_yearning_dev_1 ...
  3. Recreating yearningdockercompose_yearning_dev_1 ... done
  4. Attaching to yearningdockercompose_db_1, yearningdockercompose_yearning_prod_1, yearningdockercompose_yearning_dev_1
  5. db_1 | 2018-10-23T14:03:54.283527Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
  6. db_1 | 2018-10-23T14:03:54.286060Z 0 [Note] mysqld (mysqld 5.7.23) starting as process 1 ...
  7. db_1 | 2018-10-23T14:03:54.290775Z 0 [Note] InnoDB: PUNCH HOLE support available
  8. db_1 | 2018-10-23T14:03:54.290817Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
  9. db_1 | 2018-10-23T14:03:54.290825Z 0 [Note] InnoDB: Uses event mutexes
  10. db_1 | 2018-10-23T14:03:54.290833Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
  11. db_1 | 2018-10-23T14:03:54.290840Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
  12. db_1 | 2018-10-23T14:03:54.290847Z 0 [Note] InnoDB: Using Linux native AIO
  13. db_1 | 2018-10-23T14:03:54.291209Z 0 [Note] InnoDB: Number of pools: 1
  14. db_1 | 2018-10-23T14:03:54.291365Z 0 [Note] InnoDB: Using CPU crc32 instructions
  15. db_1 | 2018-10-23T14:03:54.293645Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
  16. db_1 | 2018-10-23T14:03:54.305775Z 0 [Note] InnoDB: Completed initialization of buffer pool
  17. db_1 | 2018-10-23T14:03:54.308258Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
  18. db_1 | 2018-10-23T14:03:54.320987Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
  19. db_1 | 2018-10-23T14:03:54.339834Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
  20. db_1 | 2018-10-23T14:03:54.339911Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
  21. db_1 | 2018-10-23T14:03:54.417815Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
  22. db_1 | 2018-10-23T14:03:54.418814Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
  23. db_1 | 2018-10-23T14:03:54.418834Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
  24. db_1 | 2018-10-23T14:03:54.419989Z 0 [Note] InnoDB: Waiting for purge to start
  25. db_1 | 2018-10-23T14:03:54.470171Z 0 [Note] InnoDB: 5.7.23 started; log sequence number 13026725
  26. db_1 | 2018-10-23T14:03:54.470406Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
  27. db_1 | 2018-10-23T14:03:54.470659Z 0 [Note] Plugin 'FEDERATED' is disabled.
  28. db_1 | 2018-10-23T14:03:54.474343Z 0 [Note] InnoDB: Buffer pool(s) load completed at 181023 14:03:54
  29. db_1 | 2018-10-23T14:03:54.479744Z 0 [Note] Found ca.pem, server-cert.pem and server-key.pem in data directory. Trying to enable SSL support using them.
  30. db_1 | 2018-10-23T14:03:54.480011Z 0 [Warning] CA certificate ca.pem is self signed.
  31. db_1 | 2018-10-23T14:03:54.482673Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
  32. db_1 | 2018-10-23T14:03:54.482737Z 0 [Note] IPv6 is available.
  33. db_1 | 2018-10-23T14:03:54.482750Z 0 [Note] - '::' resolves to '::';
  34. db_1 | 2018-10-23T14:03:54.482789Z 0 [Note] Server socket created on IP: '::'.
  35. db_1 | 2018-10-23T14:03:54.486406Z 0 [Warning] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
  36. db_1 | 2018-10-23T14:03:54.496680Z 0 [Note] Event Scheduler: Loaded 0 events
  37. db_1 | 2018-10-23T14:03:54.496960Z 0 [Note] mysqld: ready for connections.
  38. db_1 | Version: '5.7.23' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)
  39. yearning_prod_1 | [2018-10-23 22:03:54 +0800] [18] [INFO] Starting gunicorn 19.8.1
  40. yearning_prod_1 | [2018-10-23 22:03:54 +0800] [18] [INFO] Listening at: http://0.0.0.0:8000 (18)
  41. yearning_prod_1 | [2018-10-23 22:03:54 +0800] [18] [INFO] Using worker: sync
  42. yearning_prod_1 | [2018-10-23 22:03:54 +0800] [20] [INFO] Booting worker with pid: 20
  43. yearning_dev_1 | [2018-10-23 22:03:54 +0800] [18] [INFO] Starting gunicorn 19.8.1
  44. yearning_dev_1 | [2018-10-23 22:03:54 +0800] [18] [INFO] Listening at: http://0.0.0.0:8000 (18)
  45. yearning_dev_1 | [2018-10-23 22:03:54 +0800] [18] [INFO] Using worker: sync
  46. yearning_dev_1 | [2018-10-23 22:03:54 +0800] [20] [INFO] Booting worker with pid: 20
  47. yearning_dev_1 | [2018-10-23 22:03:54 +0800] [21] [INFO] Booting worker with pid: 21
  48. yearning_prod_1 | [2018-10-23 22:03:55 +0800] [21] [INFO] Booting worker with pid: 21

5、访问并配置inception:

(线上)http://x.x.x.x:9080(开发)http://x.x.x.x:8080

在install/inception.tar解压,配置bin目录下的inc.cnf文件,分别修改inc_dev.cnf,inc_prod.cnf的配置文件。

  1. [root@izbp18o219vg69uwg7d2dnz inception]# tree
  2. .
  3. ├── bin
  4. │   ├── inc.cnf
  5. │   ├── inc_dev.cnf
  6. │   ├── Inception
  7. │   ├── inc_prod.cnf
  8. │   └── mysql
  9. .....
  10. [root@izbp18o219vg69uwg7d2dnz bin]# cat inc_dev.cnf
  11. [inception]
  12. general_log=1
  13. general_log_file=inception_dev.log
  14. port=7669
  15. socket=/tmp/inc_dev.socket
  16. character-set-client-handshake=0
  17. character-set-server=utf8
  18. inception_support_charset=utf8mb4
  19. inception_enable_nullable=0
  20. inception_check_primary_key=1
  21. inception_check_column_comment=1
  22. inception_check_table_comment=1
  23. inception_enable_blob_type=1
  24. inception_check_column_default_value=1
  25. inception_support_charset=utf8
  26. inception_osc_on=OFF
  27. inception_check_column_default_value=OFF
  28. inception_check_column_comment=OFF
  29. inception_check_table_comment=OFF
  30. inception_enable_identifer_keyword=ON
  31. inception_remote_backup_host = 127.0.0.1
  32. inception_remote_backup_port = 3306
  33. inception_remote_system_user = root
  34. inception_remote_system_password = F4rtC7gR<tQq
  35. inception_max_update_rows = 500000
  36. [root@izbp18o219vg69uwg7d2dnz bin]# cat inc_prod.cnf
  37. [inception]
  38. general_log=1
  39. general_log_file=inception_prod.log
  40. port=6669
  41. socket=/tmp/inc_prod.socket
  42. character-set-client-handshake=0
  43. character-set-server=utf8
  44. inception_support_charset=utf8mb4
  45. inception_enable_nullable=0
  46. inception_check_primary_key=1
  47. inception_check_column_comment=1
  48. inception_check_table_comment=1
  49. inception_enable_blob_type=1
  50. inception_check_column_default_value=1
  51. inception_support_charset=utf8
  52. inception_osc_on=OFF
  53. inception_check_column_default_value=OFF
  54. inception_check_column_comment=OFF
  55. inception_check_table_comment=OFF
  56. inception_enable_identifer_keyword=ON
  57. inception_remote_backup_host = 127.0.0.1
  58. inception_remote_backup_port = 3306
  59. inception_remote_system_user = root
  60. inception_remote_system_password = F4rtC7gR<tQq
  61. inception_max_update_rows = 500000

启动inception:

sh Yearning.sh 按1

  1. cat Yearning.sh
  2. # Network
  3. ping -c 1 -W 3 www.baidu.com &> /dev/null
  4. if [ ! $? = 0 ];then
  5. echo "Cannot be networked"
  6. exit 1
  7. fi
  8. echo "
  9. -------------------------------------------
  10. |
  11. 1: Restart all Inception services |
  12. |
  13. -------------------------------------------
  14. "
  15. # Set PATH Variables
  16. export PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/root/bin
  17. BASE_DIR=$(cd "$(dirname "$0")";pwd)
  18. # Set output color
  19. COLUMENS=80
  20. SPACE_COL=$[ $COLUMENS-21 ]
  21. VERSION=`uname -r | awk -F'.' '{print $1}'`
  22. RED='\033[1;5;31m'
  23. GREEN='\033[1;32m'
  24. NORMAL='\033[0m'
  25. success() {
  26. REAL_SPACE=$[ $SPACE_COL - ${#1} ]
  27. for i in `seq 1 $REAL_SPACE`; do
  28. echo -n " "
  29. done
  30. echo -e "[ ${GREEN}SUCCESS${NORMAL} ]"
  31. }
  32. failure() {
  33. REAL_SPACE=$[ $SPACE_COL - ${#1} ]
  34. for i in `seq 1 $REAL_SPACE`; do
  35. echo -n " "
  36. done
  37. echo -e "[ ${RED}FAILURE${NORMAL} ]"
  38. exit 1
  39. }
  40. help() {
  41. echo "Please enter a valid serial number"
  42. }
  43. restart() {
  44. Data="01) Restart Inception"
  45. echo -n $Data
  46. netstat -nltp | grep ":6669"|awk '{print $7}'|awk -F "/" '{print $1}' | xargs kill -9 &> /dev/null
  47. netstat -nltp | grep ":7669"|awk '{print $7}'|awk -F "/" '{print $1}' | xargs kill -9 &> /dev/null
  48. #ps aux | grep Inception | grep -v grep | awk '{print $2}' | xargs kill -9 &> /dev/null
  49. nohup $BASE_DIR/install/inception/bin/Inception --defaults-file=$BASE_DIR/install/inception/bin/inc_dev.cnf > $BASE_DIR/logs/inception_dev.log 2>&1 &
  50. nohup $BASE_DIR/install/inception/bin/Inception --defaults-file=$BASE_DIR/install/inception/bin/inc_prod.cnf > $BASE_DIR/logs/inception_prod.log 2>&1 &
  51. if [ $? = 0 ];then
  52. success "$Data"
  53. else
  54. failure "$Data"
  55. fi
  56. sleep 1
  57. }
  58. read -p "Please select enter a valid sequence number: " NUMBER
  59. echo
  60. case "$NUMBER" in
  61. 1)
  62. restart
  63. ;;
  64. *)
  65. help
  66. exit 1
  67. esac

6、docker相关操作事项:

1)docker-compose stop 关容器服务

2)docker-compose restart 重启容器服务

3)docker-compose ps 查看容器服务

4)docker ps docker exec docker exec 查看某一个容器运行时情况

7、nginx配置

在/etc/nginx/conf.d/添加devsql.conf,prodsql.conf两个文件:

#cat /etc/nginx/conf.d/devsql.conf


# A virtual host using mix of IP-, name-, and port-based configuration
#

server {
#add_header 'Access-Control-Allow-Origin' '*';
#add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept';
#add_header 'Access-Control-Allow-Methods' "GET,POST,PUT,DELETE,OPTIONS";
listen 80;
server_name a1.abc.com;

location / {
proxy_pass http://172.16.0.49:9080;
}
location ~ ^/api {
proxy_pass http://172.16.0.49:9000;
}
}

 

#cat /etc/nginx/conf.d/prodsql.conf


# A virtual host using mix of IP-, name-, and port-based configuration
#

server {
#add_header 'Access-Control-Allow-Origin' '*';
#add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept';
#add_header 'Access-Control-Allow-Methods' "GET,POST,PUT,DELETE,OPTIONS";
listen 80;
server_name a1.abc.com;

location / {
proxy_pass http://172.16.0.49:8080;
}
location ~ ^/api {
proxy_pass http://172.16.0.49:8000;
}
}

#systemctl start nginx

backup_dbname:这个列表示的是当前语句产生的备份信息,存储在备份服务器的哪个数据库中,这是一个字符串类型的值,只针对需要备份的语句,数据库名由IP地址、端口、源数据库名组成,由下划线连接,而如果是不需要备份的语句,则返回字符串None。

mysql 数据库名称长度不能超过64字符!!!!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/912910
推荐阅读
相关标签
  

闽ICP备14008679号