startDockerImage.sh 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. #!/bin/bash
  2. # 本脚本用于修改mysql安装配置文件信息
  3. # 获取脚本运行所在路径
  4. SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
  5. echo -e "\033[33m
  6. ---------------
  7. -----SZHFY-----
  8. ----GB28181----
  9. ---------------
  10. \033[0m";
  11. echo -e "\033[33m 欢迎使用深圳合方圆科技一键部署国标平台安装程序 \033[0m";
  12. # 读取配置文件
  13. source ./config.cfg
  14. # 检查必要启动参数是否存在
  15. #sql_host="0.0.0.0"
  16. #sql_port=3306
  17. #sql_user="hfygb"
  18. #sql_passwd="hfygb28181"
  19. #sql_db="gb_db"
  20. #sql_path="sqlRuning"
  21. #redis_host="0.0.0.0"
  22. #redis_port=7654
  23. #redis_db=6
  24. #redis_passwd="hfyredis28181"
  25. echo "检查基础参数中,,,,,,"
  26. if [ ! -n "$sql_host" ]; then
  27. echo "sql_host 未设置"
  28. exit 1
  29. fi
  30. if [ ! -n "$sql_user" ]; then
  31. echo "sql_user 未设置"
  32. exit 1
  33. fi
  34. if [ ! -n "$sql_passwd" ]; then
  35. echo "sql_passwd 未设置"
  36. exit 1
  37. fi
  38. if [ ! -n "$sql_db" ]; then
  39. echo "sql_db 未设置"
  40. exit 1
  41. fi
  42. echo "开始启动redis"
  43. #检查是否启用docker安装 enable_sql 为1时启用 为0时不启用
  44. if($enable_sql -eq 1);then
  45. # 判断是否存在mysql目录,没有则创建
  46. if [ ! -d "$SCRIPT_DIR/sql" ]; then
  47. mkdir -p /data/mysql
  48. fi
  49. # 导入mysql镜像
  50. docker load -i ./result/hfysql.tar
  51. # 检查容器是否已经启动,如果已经启动则尝试导出数据库
  52. docker ps -a | grep hfysql
  53. if [ $? -eq 0 ]; then
  54. # 导出数据库
  55. docker exec -it hfysql mysqldump -uroot -p"hfy$sql_passwd" --all-databases > /data/mysql/hfysqlSave.sql
  56. # 停止容器
  57. docker stop hfysql
  58. # 删除容器
  59. docker rm hfysql
  60. fi
  61. # 启动mysql容器
  62. docker run -d --name hfysql \
  63. -p "$sql_port":3306 \
  64. -v /data/mysql:/var/lib/mysql \
  65. -e MYSQL_DATABASE="$sql_db" \
  66. -e MYSQL_USER="root" \
  67. -e MYSQL_ROOT_PASSWORD="hfy$sql_passwd" \
  68. hfysql:latest
  69. if [ $? -ne 0 ]; then
  70. echo "run mysql docker failed";
  71. fi
  72. # 为mysql添加用户,并且授权数据库给该用户
  73. docker exec -it mysql mysql -uroot -p"hfy$sql_passwd" -e "CREATE USER '$sql_user'@'%' IDENTIFIED BY '$sql_passwd';GRANT ALL PRIVILEGES ON *.* TO '$sql_user'@'%';FLUSH PRIVILEGES;"
  74. fi
  75. echo "开始启动redis"
  76. # 检查是否启用redis安装 enable_redis 为1时启用 为0时不启用
  77. if($enable_redis -eq 1);then
  78. #
  79. # 修改配置redis配置文件
  80. sed -i \
  81. -e "s/^port .*$/port $redis_port/g" \
  82. -e "s/^requirepass .*$/requirepass $redis_passwd/g" \
  83. "$SCRIPT_DIR/redis/redis.conf";
  84. # 导入redis镜像
  85. docker load -i ./result/hfyredis.tar
  86. # 检查容器是否已经启动,如果已经启动则关闭并且删除容器
  87. docker ps -a | grep hfyredis
  88. if [ $? -eq 0 ]; then
  89. # 停止容器
  90. docker stop hfyredis
  91. # 删除容器
  92. docker rm hfyredis
  93. fi
  94. # 启动redis容器 host 模式启动,端口映射到宿主机
  95. docker run -it -p "$redis_port":"$redis_port" \
  96. -v /data/redis:/data/redis \
  97. -v /data/redis/logs:/data/redis/logs \
  98. -v "$SCRIPT_DIR/redis/redis.conf":/etc/redis/redis.conf \
  99. --name hfy_redis -itd hfyredis:latest
  100. fi
  101. echo "开始启动国标平台"
  102. # 根据参数生成国标平台配置文件
  103. source ./gbRunning/createConfig.sh
  104. # 导入国标平台镜像
  105. docker load -i ./result/hfygb.tar
  106. # 检查容器是否已经启动,如果已经启动则关闭并且删除容器 hfy_gb
  107. docker ps -a | grep hfy_gb
  108. if [ $? -eq 0 ]; then
  109. # 停止容器
  110. docker stop hfy_gb
  111. # 删除容器
  112. docker rm hfy_gb
  113. fi
  114. sudo docker run -itd --net=host \
  115. -v /data/gb:/data/gb -e LANG=C.UTF-8 \
  116. -v $SCRIPT_DIR"/gbRunning":/data/hfygb \
  117. -v $SCRIPT_DIR"/gbRunning/application_product.yml":/data/hfygb/config/"application_product.yml" --name hfy_gp -it hfy_gb:latest
  118. if [ $? -ne 0 ]; then
  119. echo "run gb docker failed";
  120. fi
  121. echo -e "\033[33m国标平台以全部启动,请使用浏览器访问 http://$gb_host:$gb_WebPort\033[0m";