refactor: 重构docker相关代码
This commit is contained in:
@@ -0,0 +1,83 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#重启docker容器
|
||||||
|
restart_docker() {
|
||||||
|
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径
|
||||||
|
local COMPOSE_FILE="$SCRIPT_DIR/../docker-compose.yml"
|
||||||
|
check_docker_compose_file $COMPOSE_FILE
|
||||||
|
|
||||||
|
# 如果容器未运行,提示启动
|
||||||
|
local RUNNING_COUNT=$(docker compose -f $COMPOSE_FILE ps -q | wc -l)
|
||||||
|
if [ "$RUNNING_COUNT" -eq 0 ]; then
|
||||||
|
read -p "容器未启动,是否启动容器?(y/n): " CHOICE
|
||||||
|
case "$CHOICE" in
|
||||||
|
Y|y)
|
||||||
|
docker compose -f $COMPOSE_FILE up -d
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "已取消启动"
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "正在重启容器..."
|
||||||
|
docker compose -f $COMPOSE_FILE down
|
||||||
|
docker compose -f $COMPOSE_FILE up -d
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
update_docker_images(){
|
||||||
|
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径
|
||||||
|
local COMPOSE_FILE="$SCRIPT_DIR/../docker-compose.yml" # docker-compose.yml文件路径
|
||||||
|
check_docker_compose_file $COMPOSE_FILE
|
||||||
|
|
||||||
|
echo "正在关闭容器.."
|
||||||
|
docker compose -f $COMPOSE_FILE down
|
||||||
|
|
||||||
|
echo "正在更新镜像.."
|
||||||
|
docker compose -f $COMPOSE_FILE pull
|
||||||
|
|
||||||
|
echo "正在删除未使用的镜像..."
|
||||||
|
docker image prune -f
|
||||||
|
|
||||||
|
echo "正在启动容器.."
|
||||||
|
docker compose -f $COMPOSE_FILE up -d
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
run() {
|
||||||
|
check_docker_compose
|
||||||
|
|
||||||
|
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径
|
||||||
|
local COMPOSE_FILE="$SCRIPT_DIR/../docker-compose.yml"
|
||||||
|
check_docker_compose_file $COMPOSE_FILE
|
||||||
|
|
||||||
|
# 如果容器已经启动, 则先停止容器
|
||||||
|
if docker compose -f "$COMPOSE_FILE" ps | grep -q "Up"; then
|
||||||
|
docker compose -f "$COMPOSE_FILE" down
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 启动docker容器
|
||||||
|
docker compose -f "$COMPOSE_FILE" up -d
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# 检查docker版本是否支持docker compose子命令
|
||||||
|
check_docker_compose(){
|
||||||
|
# 检查 docker compose 子命令是否可用
|
||||||
|
if ! docker compose version &>/dev/null; then
|
||||||
|
echo "Docker 不支持 'compose' 子命令,请升级 Docker"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_docker_compose_file(){
|
||||||
|
local COMPOSE_FILE=${1}
|
||||||
|
# 检查是否存在 docker-compose.yml 文件
|
||||||
|
if [ ! -f $COMPOSE_FILE ]; then
|
||||||
|
echo "Error: docker-compose.yml 文件不存在."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
-14
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
run(){
|
|
||||||
local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
||||||
local docker_compose_file="$script_dir/../docker-compose.yml"
|
|
||||||
local running_count=$(docker-compose -f "$docker_compose_file" ps -q --filter "status=running" | wc -l)
|
|
||||||
|
|
||||||
# 如果容器已启动
|
|
||||||
if [ "$running_count" -gt 0 ]; then
|
|
||||||
docker-compose -f "$docker_compose_file" down # 关闭容器
|
|
||||||
fi
|
|
||||||
|
|
||||||
docker-compose -f "$docker_compose_file" up -d # 启动容器
|
|
||||||
}
|
|
||||||
@@ -31,41 +31,6 @@ check_jq() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# 检查 Docker 是否已安装
|
|
||||||
check_docker() {
|
|
||||||
if command -v docker >/dev/null 2>&1; then
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
echo "Docker 未安装"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# 检查 docker-compose 是否已安装
|
|
||||||
check_docker_compose() {
|
|
||||||
if command -v docker-compose >/dev/null 2>&1; then
|
|
||||||
return 0
|
|
||||||
elif docker compose version >/dev/null 2>&1; then ## Docker 内置 compose 已安装
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
echo "docker-compose 未安装"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# 安装docker
|
|
||||||
install_docker(){
|
|
||||||
echo 安装docker...
|
|
||||||
curl -fsSL https://get.docker.com | bash -s docker
|
|
||||||
}
|
|
||||||
|
|
||||||
# 安装docker-compose
|
|
||||||
install_docker_compose(){
|
|
||||||
echo 安装docker-compose...
|
|
||||||
wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/v2.29.0/docker-compose-linux-x86_64
|
|
||||||
chmod +x /usr/local/bin/docker-compose
|
|
||||||
}
|
|
||||||
|
|
||||||
# 动态安装软件包
|
# 动态安装软件包
|
||||||
install_package() {
|
install_package() {
|
||||||
local package_name=$1
|
local package_name=$1
|
||||||
|
|||||||
Reference in New Issue
Block a user