如果报-bash: ./xxx.sh: /bin/sh^M: bad interpreter: No such file or directory
请参考bad interpreter,No such file or directory
deploy_software.sh(安装软件)
#!/usr/bin/bash
echo -e "\n\n\n\n"
echo "脚本开始执行=======================================";
# 检测git
if !(command -v git >/dev/null)
then
echo -e "\n\n\n\n"
echo "系统没有安装git,开始安装git=================";
yum install git -y
echo "安装git结束=================================";
fi
# 检测java
if !(command -v java >/dev/null)
then
echo -e "\n\n\n\n"
echo "系统没有安装java,开始安装java================";
yum install java -y
echo "安装java结束=================================";
fi
# 检测expect
if !(command -v expect >/dev/null)
then
echo -e "\n\n\n\n"
echo "系统没有安装expect,开始安装expect================";
yum install expect -y
echo "安装expect结束=================================";
fi
# 检测docker
if !(command -v docker >/dev/null)
then
echo -e "\n\n\n\n"
echo "系统没有安装docker,开始安装docker================";
# 添加docker 的yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 清除docker 的yum源缓存
yum clean all
# 重新加载docker 的yum源
yum makecache
#安装docker
yum -y install-docker-ce
#启动docker
systemctl start docker
#设置开机自动启动docker
systemctl enable docker
echo "安装docker结束=================================";
fi
echo -e "\n\n\n\n"
echo "脚本执行结束=======================================";
安装完以上的之后还要配置Git
参照git安装里面的1.3即可,需要注意的是,生成的ssh公钥在 ==/root/.ssh/==里面,用以下命令查看
cat /root/.ssh/id_rsa.pub
安装完以上的之后还要安装Maven
deploy_springboot.sh(部署服务)
#!/usr/bin/bash
#配置代码仓库用户名
git_username="13197630087"
#配置代码仓库密码
git_password="qqs20020906"
#项目名字
project_name="vue_springboot"
project_name_1="springboot"
#代码仓库路径,.git的那个链接
git_path="git@gitee.com:qiuqingsheng/vue_springboot.git"
#主机端口
esc_port="9090"
#Java服务端口,也是docker容器端口
docker_port="9090"
echo -e "\n\n\n\n"
echo "脚本开始执行=======================================";
echo "开始清除之前项目文件=======================================";
rm -rf $project_name
echo "清除之前项目文件结束=======================================";
echo -e "\n\n\n\n"
echo "开始克隆代码=======================================";
/usr/bin/expect <<EOF
#这里意味着bash脚本中嵌套着expect脚本
set timeout -1
spawn git clone ${git_path}
expect {
"Username*:"{send "$git_username\r";exp_continue}
"Password*:"{send "$git_password"}
}
expect eof
EOF
echo "克隆代码成功=======================================";
echo -e "\n\n\n\n"
echo "开始进入项目目录=======================================";
cd ${project_name}
echo "进入项目目录结束=======================================";
echo -e "\n\n\n\n"
echo "开始构建项目,打包jar=======================================";
mvn clean package -Dmaven.test.skip=true
echo "构建项目结束=======================================";
echo -e "\n\n\n\n"
echo "开始制作docker镜像=======================================";
docker build -t $project_name_1 ./
echo "制作docker镜像结束=======================================";
echo -e "\n\n\n\n"
echo -e "\n\n\n\n"
echo "开始部署服务=======================================";
#停止正在运行的docker容器
docker stop $project_name_1
#删除正在运行的docker容器
docker rm $project_name_1
#启动运行docker容器
docker run -d --name $project_name_1 -p $esc_port:$docker_port $project_name_1
echo "部署服务结束=======================================";
echo -e "\n\n\n\n"