Linux中部署若依系统

128 阅读1分钟

1. 自动化脚本

#!/bin/bash
docker_mysql_container_id="9b208435496d"
docker_redis_container_id="287e7b4c221a"
nginx_install_dir="/usr/local/nginx"


echo "###############################启动docker及其容器###############################"
systemctl start docker.service

echo "当前docker容器状态:"
systemctl status docker | grep Active | awk '{print $2}'

echo "已经启动的docker容器编号:"

docker start ${docker_mysql_container_id}

docker start ${docker_redis_container_id}

echo "已经启动的docker容器名称:"
docker ps | awk '{print $NF}' | grep -v NAMES

echo "###############################启动nginx###############################"
cd ${nginx_install_dir}/sbin
./nginx
echo "nginx启动线程:"
ps -ef | grep nginx | grep -v grep

echo "###############################关闭防火墙###############################"
systemctl stop firewalld.service
echo "当前防火墙状态:"
systemctl status firewalld | grep Active | awk '{print $2}'

2. shell脚本自动化部署项目

  • 依系统在Linux中的部署使用一个自动化部署脚本来编写
#!/bin/bash

back_dir=/work/hsa-com-fee-back
back_package_name=/work/hsa-com-fee-back/ruoyi-admin/target/ruoyi-admin.jar

front_dir=/work/hsa-com-fee-front
front_package_name=/work/hsa-com-fee-front/

package_dir=/work/package
branch=xuniji


echo "1-启动前端代码"
echo "2-启动后端代码"
read -t 30 -p "请输入启动选项:" selection


case $selection in
1)
    #项目目录
    cd ${front_dir}
    #切换分支    
    git checkout ${branch}
    #更新代码
    git pull
    #打包
    npm run build:prod
    #删除指定目录
    rm -rf ${package_dir}/dist
    #复制包到指定目录
    cp -r -f dist ${package_dir}
    ;;
2)
    #项目目录
    cd ${back_dir}
    #切换分支    
    git checkout ${branch}
    #更新代码
    git pull
    #打包
    mvn install -Dmaven.test.skip=true
    #获取jar包名称
    jar_name=$(basename ${back_package_name})
    #删除指定目录
    rm -rf ${package_dir}/${jar_name}
    #复制包到指定目录
    cp ${back_package_name} ${package_dir}
    #进入指定目录
    cd ${package_dir}
    #杀死进程
    PROCESS=`ps -ef|grep ${jar_name}|grep -v grep|grep -v PPID|awk '{ print $2}'`
    for i in $PROCESS
    do
    echo "Kill the $1 process [ $i ]"
    kill -9 $i
    done
    #启动
    nohup java -jar ${jar_name} > log.txt  2>&1 &
    ;;
esac

3. 配置nginx访问若依系统

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

server {
        listen       9010;
        server_name  localhost;
		
		#配置访问前端的代码
        location / {
            root   /work/package/dist;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

		#配置访问后台的代码
        location /prod-api/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost:32010/;
        }
    }

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}