bash实现一键部署staging环境

最近在分离Staging和Production和环境,每次部署起来,很多事情都是在做重复的操作,之前一直在学习Linux,于是写了个简单的bash脚本来实现一键部署.

先讲下缺点:

目前需要手动将bash脚本scp到服务器上,在安装composer的时候需要提前将php环境配置好,不然就可能出现安装的失败的情况.

废话不多说,上代码.

文中xxx.com 等于 实际操作的项目路径,公司内部项目特做了替换处理.

#!/bin/bash

#创建staging目录 拉取项目 
staging_path=/data/staging/

if [ ! -e ${staging_path} ];then
        #创建staging目录
	mkdir -p ${staging_path}
	cd ${staging_path}
fi
#克隆项目
git clone http://sz001/web/xxxxxxx.com.git
cd xxxxx.com
#复制配置文件
cp .env.local .env
#相关依赖安装
composer install

#部署nginx
cd /usr/local/nginx/conf/vhost
//打印当前目录
pwd
#conf文件位置
nginx_conf_path=staging.xxxxxxx.com.conf
#创建conf文件
touch $nginx_conf_path
#nginx配置
nginx_conf="server {
        server_name localhost;
        root  /data/staging/xxxxxxx.com/public;

        location / {
      		try_files $uri $uri/ /index.php$is_args$args;
 		}

 		location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
		    expires      30d;
		}

		location ~ .*\.(js|css)?$ {
		    expires      12h;
		}

        include enable-php.conf;
        access_log  off;
}"
#重定向输出到 conf文件中
echo "$nginx_conf" > $nginx_conf_path
#重新加载nginx配置
nginx -s reload

具体的代码讲解在bash中了,以上操作实现简单了克隆项目和nginx部署.

实战操作:

image.png

待改进的还有很多,如有错误,还请指出.

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容