大量更新

This commit is contained in:
zeaslity
2026-05-19 14:28:44 +08:00
parent a8f6bda703
commit 9fc3372fa3
5299 changed files with 423176 additions and 426690 deletions

View File

@@ -0,0 +1,123 @@
#!/usr/bin/env bash
set -Eeuo pipefail
# =========================
# 基础配置
# =========================
OUTPUT_DIR="/var/lib/docker/wdd/octopus_image/cmii_uas_23_tmp"
IMAGES=(
"bitnamilegacy/redis:6.2.14-debian-11-r19"
"bitnamilegacy/redis:7.4.3-debian-12-r0"
"bitnamilegacy/mysql:8.1.0-debian-11-r42"
"bitnamilegacy/os-shell:12-debian-12-r51"
"bitnamilegacy/rabbitmq:3.13.7-debian-12-r5"
"ossrs/srs:v5.0.195"
"emqx/emqx:5.8.8"
"nacos/nacos-server:v2.1.2"
"library/mongo:5.0"
"minio/minio:RELEASE.2023-06-02T23-17-26Z"
"nginx:1.28.2"
"harbor.cdcyy.com.cn/cmii/doris.be-ubuntu:2.1.6"
"harbor.cdcyy.com.cn/cmii/doris.fe-ubuntu:2.1.6"
)
# =========================
# 日志函数
# =========================
log() {
local level="$1"
shift
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$level] $*"
}
# =========================
# 异常处理
# =========================
on_error() {
local exit_code=$?
local line_no=${1:-unknown}
log "ERROR" "脚本执行失败,行号: ${line_no},退出码: ${exit_code}"
exit "${exit_code}"
}
trap 'on_error $LINENO' ERR
# =========================
# 前置检查
# =========================
check_command() {
local cmd="$1"
if ! command -v "${cmd}" >/dev/null 2>&1; then
log "ERROR" "缺少命令: ${cmd}"
exit 1
fi
}
check_command docker
mkdir -p "${OUTPUT_DIR}"
log "INFO" "输出目录已准备: ${OUTPUT_DIR}"
# =========================
# 工具函数
# =========================
image_exists() {
local image="$1"
docker image inspect "${image}" >/dev/null 2>&1
}
sanitize_filename() {
local image="$1"
# 将镜像名转换成适合文件名的格式
# harbor.cdcyy.com.cn/cmii/cmii-uas-gateway:2.3.0-pro-20260226
# ->
# harbor.cdcyy.com.cn_cmii_cmii-uas-gateway_2.3.0-pro-20260226.tar
local name
name="${image//\//_}"
name="${name//:/_}"
echo "${name}.tar"
}
pull_image_if_needed() {
local image="$1"
if image_exists "${image}"; then
log "INFO" "镜像已存在,无需拉取: ${image}"
else
log "INFO" "镜像不存在,开始拉取: ${image}"
docker pull "${image}"
log "INFO" "镜像拉取完成: ${image}"
fi
}
save_image_to_tar() {
local image="$1"
local tar_name
local tar_path
tar_name="$(sanitize_filename "${image}")"
tar_path="${OUTPUT_DIR}/${tar_name}"
log "INFO" "开始打包镜像: ${image}"
docker save -o "${tar_path}" "${image}"
log "INFO" "镜像打包完成: ${tar_path}"
}
# =========================
# 主流程
# =========================
main() {
local image
for image in "${IMAGES[@]}"; do
log "INFO" "----------------------------------------"
log "INFO" "处理镜像: ${image}"
pull_image_if_needed "${image}"
save_image_to_tar "${image}"
done
log "INFO" "----------------------------------------"
log "INFO" "全部镜像处理完成,输出目录: ${OUTPUT_DIR}"
}
main "$@"