- 添加 Jenkinsfile 支持智能增量构建 - 添加 Docker 多阶段构建模板 - 添加 Docker Compose 配置(连接 1Panel 中间件) - 添加部署、回滚、清理脚本 - 添加环境变量配置模板
82 lines
2.1 KiB
Bash
82 lines
2.1 KiB
Bash
#!/bin/bash
|
|
|
|
# ============================================
|
|
# AIOT Platform - 清理脚本
|
|
# 清理旧镜像和容器,释放存储空间
|
|
# ============================================
|
|
|
|
set -e
|
|
|
|
# 颜色输出
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
log_info() {
|
|
echo -e "${GREEN}[INFO]${NC} $1"
|
|
}
|
|
|
|
log_warn() {
|
|
echo -e "${YELLOW}[WARN]${NC} $1"
|
|
}
|
|
|
|
log_info "========================================="
|
|
log_info "AIOT Platform 清理开始"
|
|
log_info "========================================="
|
|
|
|
# 显示当前磁盘使用情况
|
|
log_info "当前磁盘使用情况:"
|
|
df -h | grep -E "Filesystem|/$"
|
|
echo ""
|
|
log_info "当前 Docker 磁盘使用:"
|
|
docker system df
|
|
echo ""
|
|
|
|
# 清理停止的容器
|
|
log_info "清理停止的容器..."
|
|
docker container prune -f
|
|
|
|
# 清理悬空镜像
|
|
log_info "清理悬空镜像..."
|
|
docker image prune -f
|
|
|
|
# 清理旧版本镜像(保留最近 3 个版本)
|
|
log_info "清理旧版本镜像(保留最近 3 个版本)..."
|
|
|
|
SERVICES="viewsh-gateway viewsh-module-system-server viewsh-module-infra-server viewsh-module-iot-server viewsh-module-iot-gateway viewsh-module-ops-server"
|
|
|
|
for service in $SERVICES; do
|
|
log_info "处理服务: ${service}"
|
|
|
|
# 获取所有镜像,按时间排序,删除除了最新 3 个之外的所有镜像
|
|
docker images "localhost:5000/${service}" --format "{{.ID}} {{.Tag}}" | \
|
|
grep -v "latest" | \
|
|
tail -n +4 | \
|
|
awk '{print $1}' | \
|
|
xargs -r docker rmi -f 2>/dev/null || true
|
|
done
|
|
|
|
# 清理未使用的卷(谨慎使用)
|
|
log_warn "是否清理未使用的卷? (y/N)"
|
|
read -r response
|
|
if [ "$response" = "y" ] || [ "$response" = "Y" ]; then
|
|
log_info "清理未使用的卷..."
|
|
docker volume prune -f
|
|
fi
|
|
|
|
# 清理构建缓存
|
|
log_info "清理 Docker 构建缓存..."
|
|
docker builder prune -f --filter "until=24h"
|
|
|
|
# 显示清理后的磁盘使用情况
|
|
echo ""
|
|
log_info "========================================="
|
|
log_info "清理完成"
|
|
log_info "========================================="
|
|
echo ""
|
|
log_info "清理后磁盘使用情况:"
|
|
df -h | grep -E "Filesystem|/$"
|
|
echo ""
|
|
log_info "清理后 Docker 磁盘使用:"
|
|
docker system df
|