94 lines
2.6 KiB
Bash
94 lines
2.6 KiB
Bash
#!/usr/bin/env bash
|
|
###
|
|
# @Author: Logan.Li
|
|
# @Gitee: https://gitee.com/attacker
|
|
# @email: admin@attacker.club
|
|
# @Date: 2023-10-28 00:01:57
|
|
# @LastEditTime: 2023-10-28 01:30:56
|
|
# @Description:
|
|
###
|
|
|
|
CURRENT_DIR=$(
|
|
cd "$(dirname "$0")"
|
|
pwd
|
|
)
|
|
|
|
function logger() {
|
|
case "$1" in
|
|
"error" | "red")
|
|
echo -e "\e[1;31m$2\e[0m"
|
|
echo "$2" >>${CURRENT_DIR}/install.log
|
|
exit 1
|
|
;;
|
|
"warning" | "yellow")
|
|
echo -e "\e[1;33m$2\e[0m"
|
|
echo "$2" >>${CURRENT_DIR}/install.log
|
|
;;
|
|
"success" | "green")
|
|
echo -e "\e[1;32m$2\e[0m"
|
|
echo "$2" >>${CURRENT_DIR}/install.log
|
|
;;
|
|
"info" | "blue")
|
|
echo -e "\e[1;34m$2\e[0m"
|
|
echo "$2" >>${CURRENT_DIR}/install.log
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# 判断是否root用户
|
|
if [ $(id -u) -ne 0 ]; then
|
|
logger error "########## This script must be run as root !!! ##########"
|
|
fi
|
|
|
|
# 环境检查
|
|
echo "time: $(date)"
|
|
|
|
if which getenforce && [ $(getenforce) == "Enforcing" ]; then
|
|
logger info "... 关闭 SELINUX"
|
|
setenforce 0
|
|
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
|
|
fi
|
|
|
|
>${CURRENT_DIR}/install.log
|
|
logger info "======================= 开始安装 =======================" 2>&1 | tee -a ${CURRENT_DIR}/install.log
|
|
|
|
logger info "检查 是否存在离线包 [offline.tar.gz]"
|
|
if [ -f ${CURRENT_DIR}/offline.tar.gz ]; then
|
|
tar zxf offline.tar.gz
|
|
chmod +x docker-install.sh && ./docker-install.sh
|
|
logger success "离线docker 安装成功"
|
|
\cp docker-compose /usr/local/sbin/docker-compose
|
|
chmod +x /usr/local/sbin/docker-compose
|
|
logger success "离线ocker-compose 安装成功"
|
|
fi
|
|
|
|
# 检查是否已经安装 Docker
|
|
if [ -x "$(command -v docker)" ]; then
|
|
logger info "Docker 已经安装"
|
|
else
|
|
# 下载 Docker 二进制安装包
|
|
curl -fsSL https://get.docker.com | sh
|
|
logger success "安装 Docker"
|
|
fi
|
|
|
|
# 检查是否已经安装 Docker Compose
|
|
if [ -x "$(command -v docker-compose)" ]; then
|
|
logger info "Docker Compose 已经安装"
|
|
else
|
|
# 下载 Docker Compose 二进制安装包
|
|
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/sbin/docker-compose
|
|
# 设置可执行权限
|
|
chmod +x /usr/local/sbin/docker-compose
|
|
docker-compose version # 查看docker-compose版本
|
|
logger success "安装 Docker Compose"
|
|
fi
|
|
|
|
# 检查是否有离线镜像
|
|
if [ -f ${CURRENT_DIR}/image.tar.gz ]; then
|
|
logger info "检查到离线镜像 [image.tar.gz]"
|
|
cat image.tar.gz | gzip -d | docker load
|
|
logger success "完成镜像恢复"
|
|
fi
|
|
|
|
logger info "开始服务部署 ... [xx.yml]"
|