Update nexus: fix conflicts and sync local changes

This commit is contained in:
Shen Wei
2026-04-26 12:06:50 +08:00
parent 191797c01b
commit f09834b5a5
2443 changed files with 254323 additions and 255154 deletions

View File

@@ -1,163 +1,163 @@
#!/bin/bash
# Docker Compose配置编辑器
# 用法: ./docker-config-editor.sh <服务器> <应用> <操作> [参数]
set -e
SERVER="$1"
APP="$2"
ACTION="$3"
shift 3
# 根据服务器获取应用路径
get_app_path() {
local server="$1"
local app="$2"
case "$server" in
macmini)
echo "/Users/weishen/docker/$app"
;;
ubuntu1)
echo "/home/shenwei/Docker/$app"
;;
ubuntu2)
echo "/home/shenwei/docker/$app"
;;
nas)
echo "/volume1/docker/$app"
;;
*)
echo "未知服务器: $server" >&2
exit 1
;;
esac
}
# 备份docker-compose.yml文件
backup_config() {
local app_path="$1"
local timestamp=$(date +%Y%m%d%H%M%S)
echo "📁 创建备份..."
ssh "$SERVER" "cd '$app_path' && cp docker-compose.yml docker-compose.yml.backup.$timestamp"
# 清理旧备份只保留最近5个
ssh "$SERVER" "cd '$app_path' && ls -t docker-compose.yml.backup.* 2>/dev/null | tail -n +6 | xargs -r rm -f"
echo "✅ 备份创建完成: docker-compose.yml.backup.$timestamp"
}
# 验证docker-compose配置格式
validate_config() {
local app_path="$1"
echo "🔍 验证配置格式..."
if ssh "$SERVER" "cd '$app_path' && docker compose config >/dev/null 2>&1"; then
echo "✅ 配置格式验证通过"
return 0
else
echo "❌ 配置格式验证失败"
return 1
fi
}
# 显示当前配置
show_config() {
local app_path="$1"
echo "📄 当前docker-compose.yml内容:"
echo "─────────────────────────────"
ssh "$SERVER" "cat '$app_path/docker-compose.yml'"
echo "─────────────────────────────"
}
# 显示修改前后的差异
show_diff() {
local app_path="$1"
local temp_file="$2"
echo "📊 修改前后差异:"
echo "─────────────────────────────"
# 获取原文件内容
local original_content=$(ssh "$SERVER" "cat '$app_path/docker-compose.yml'")
# 使用diff比较
diff -u <(echo "$original_content") "$temp_file" || true
echo "─────────────────────────────"
}
# 应用修改
apply_changes() {
local app_path="$1"
local temp_file="$2"
echo "🔄 应用修改..."
cat "$temp_file" | ssh "$SERVER" "cat > '$app_path/docker-compose.yml'"
if validate_config "$app_path"; then
echo "✅ 修改已应用并验证通过"
return 0
else
echo "❌ 修改后配置验证失败,已回滚"
# 回滚到最新备份
local latest_backup=$(ssh "$SERVER" "cd '$app_path' && ls -t docker-compose.yml.backup.* 2>/dev/null | head -1")
if [ -n "$latest_backup" ]; then
ssh "$SERVER" "cd '$app_path' && cp '$latest_backup' docker-compose.yml"
echo "🔄 已回滚到备份: $latest_backup"
fi
return 1
fi
}
# 重启应用
restart_app() {
local app_path="$1"
echo "🔄 重启应用..."
ssh "$SERVER" "cd '$app_path' && docker compose down && docker compose up -d"
# 等待应用启动
sleep 5
echo "📊 应用状态:"
ssh "$SERVER" "cd '$app_path' && docker compose ps"
}
# 主函数
main() {
if [ $# -lt 3 ]; then
echo "用法: $0 <服务器> <应用> <操作> [参数]"
echo "示例: $0 ubuntu1 portainer show"
exit 1
fi
APP_PATH=$(get_app_path "$SERVER" "$APP")
echo "🎯 目标: $SERVER -> $APP ($APP_PATH)"
case "$ACTION" in
show)
show_config "$APP_PATH"
;;
backup)
backup_config "$APP_PATH"
;;
validate)
validate_config "$APP_PATH"
;;
restart)
restart_app "$APP_PATH"
;;
edit)
# 编辑模式需要交互
echo "⚠️ 编辑模式需要交互式操作,请使用其他工具"
;;
*)
echo "未知操作: $ACTION"
echo "可用操作: show, backup, validate, restart"
exit 1
;;
esac
}
#!/bin/bash
# Docker Compose配置编辑器
# 用法: ./docker-config-editor.sh <服务器> <应用> <操作> [参数]
set -e
SERVER="$1"
APP="$2"
ACTION="$3"
shift 3
# 根据服务器获取应用路径
get_app_path() {
local server="$1"
local app="$2"
case "$server" in
macmini)
echo "/Users/weishen/docker/$app"
;;
ubuntu1)
echo "/home/shenwei/Docker/$app"
;;
ubuntu2)
echo "/home/shenwei/docker/$app"
;;
nas)
echo "/volume1/docker/$app"
;;
*)
echo "未知服务器: $server" >&2
exit 1
;;
esac
}
# 备份docker-compose.yml文件
backup_config() {
local app_path="$1"
local timestamp=$(date +%Y%m%d%H%M%S)
echo "📁 创建备份..."
ssh "$SERVER" "cd '$app_path' && cp docker-compose.yml docker-compose.yml.backup.$timestamp"
# 清理旧备份只保留最近5个
ssh "$SERVER" "cd '$app_path' && ls -t docker-compose.yml.backup.* 2>/dev/null | tail -n +6 | xargs -r rm -f"
echo "✅ 备份创建完成: docker-compose.yml.backup.$timestamp"
}
# 验证docker-compose配置格式
validate_config() {
local app_path="$1"
echo "🔍 验证配置格式..."
if ssh "$SERVER" "cd '$app_path' && docker compose config >/dev/null 2>&1"; then
echo "✅ 配置格式验证通过"
return 0
else
echo "❌ 配置格式验证失败"
return 1
fi
}
# 显示当前配置
show_config() {
local app_path="$1"
echo "📄 当前docker-compose.yml内容:"
echo "─────────────────────────────"
ssh "$SERVER" "cat '$app_path/docker-compose.yml'"
echo "─────────────────────────────"
}
# 显示修改前后的差异
show_diff() {
local app_path="$1"
local temp_file="$2"
echo "📊 修改前后差异:"
echo "─────────────────────────────"
# 获取原文件内容
local original_content=$(ssh "$SERVER" "cat '$app_path/docker-compose.yml'")
# 使用diff比较
diff -u <(echo "$original_content") "$temp_file" || true
echo "─────────────────────────────"
}
# 应用修改
apply_changes() {
local app_path="$1"
local temp_file="$2"
echo "🔄 应用修改..."
cat "$temp_file" | ssh "$SERVER" "cat > '$app_path/docker-compose.yml'"
if validate_config "$app_path"; then
echo "✅ 修改已应用并验证通过"
return 0
else
echo "❌ 修改后配置验证失败,已回滚"
# 回滚到最新备份
local latest_backup=$(ssh "$SERVER" "cd '$app_path' && ls -t docker-compose.yml.backup.* 2>/dev/null | head -1")
if [ -n "$latest_backup" ]; then
ssh "$SERVER" "cd '$app_path' && cp '$latest_backup' docker-compose.yml"
echo "🔄 已回滚到备份: $latest_backup"
fi
return 1
fi
}
# 重启应用
restart_app() {
local app_path="$1"
echo "🔄 重启应用..."
ssh "$SERVER" "cd '$app_path' && docker compose down && docker compose up -d"
# 等待应用启动
sleep 5
echo "📊 应用状态:"
ssh "$SERVER" "cd '$app_path' && docker compose ps"
}
# 主函数
main() {
if [ $# -lt 3 ]; then
echo "用法: $0 <服务器> <应用> <操作> [参数]"
echo "示例: $0 ubuntu1 portainer show"
exit 1
fi
APP_PATH=$(get_app_path "$SERVER" "$APP")
echo "🎯 目标: $SERVER -> $APP ($APP_PATH)"
case "$ACTION" in
show)
show_config "$APP_PATH"
;;
backup)
backup_config "$APP_PATH"
;;
validate)
validate_config "$APP_PATH"
;;
restart)
restart_app "$APP_PATH"
;;
edit)
# 编辑模式需要交互
echo "⚠️ 编辑模式需要交互式操作,请使用其他工具"
;;
*)
echo "未知操作: $ACTION"
echo "可用操作: show, backup, validate, restart"
exit 1
;;
esac
}
main "$@"