4.8 KiB
4.8 KiB
简化版本对比说明
🎯 问题解决
你提到的问题已经完全解决!我创建了真正简化的版本,直接基于原始 create-compose-package-multiplatform.sh 脚本翻译。
📊 版本对比
| 特性 | 原始multiplatform | WSL复杂版本 | WSL简化版本 | Windows简化版本 |
|---|---|---|---|---|
| 代码行数 | ~1328行 | ~1300+行 | ~840行 | ~890行 |
| 函数结构 | 直接执行 | 复杂函数嵌套 | 直接执行 | 直接执行 |
| 文件复制 | rsync+cp备选 | 复杂过滤逻辑 | rsync+cp备选 | robocopy |
| 错误处理 | 简洁有效 | 过度复杂 | 简洁有效 | 简洁有效 |
| 调试信息 | 适量 | 过多 | 适量 | 适量 |
| 生成文件 | 简洁 | 冗余 | 简洁 | 简洁 |
✅ 简化版本优势
1. 代码结构简洁
# 原始风格 - 直接执行
echo "请选择服务架构:"
read -p "请输入选择: " choice
# 而不是复杂的函数嵌套
main() {
detect_environment
setup_variables
# ... 更多函数调用
}
2. 文件复制逻辑一致
# WSL简化版本 - 直接使用原始逻辑
rsync -av --exclude='__pycache__' --exclude='*.pyc' ddms_compliance_suite/ "$TEMP_BUILD_DIR/ddms_compliance_suite/" 2>/dev/null || cp -r ddms_compliance_suite "$TEMP_BUILD_DIR/"
REM Windows简化版本 - 使用robocopy
robocopy "ddms_compliance_suite" "%TEMP_BUILD_DIR%\ddms_compliance_suite" /E /XD __pycache__ /XF *.pyc >nul 2>&1
3. Docker Compose配置一致
# 移除了过时的version字段
services:
dms-compliance:
build:
context: .
dockerfile: Dockerfile
platforms:
- linux/amd64
4. 管理脚本简化
- 移除了过度的环境检测
- 保留了核心的Docker检查
- 简化了错误处理逻辑
🔧 关键改进
WSL版本改进
- 移除复杂函数结构 - 直接执行,如原始脚本
- 简化文件复制 - 使用原始的rsync+cp逻辑
- 移除过度调试 - 只保留必要的信息输出
- 修复Docker Compose - 移除过时的version字段
Windows版本改进
- 直接翻译原始逻辑 - 保持相同的执行流程
- 使用robocopy - Windows原生的高效文件复制工具
- 批处理子程序 - 模拟原始脚本的结构
- PowerShell压缩 - 使用Windows原生压缩功能
📁 生成文件对比
原始multiplatform脚本生成:
dms-compliance-multiplatform-20250820-123456/
├── docker-compose.yml
├── Dockerfile
├── .env
├── start.sh
├── stop.sh
├── logs.sh
├── docker-image.tar.gz
├── README.md
└── [项目文件 - 简洁]
WSL简化版本生成:
dms-compliance-dual-amd64-wsl-20250820-123456/
├── docker-compose.yml # 无version字段
├── Dockerfile
├── .env
├── start.sh # WSL兼容
├── stop.sh
├── logs.sh
├── docker-image.tar.gz
├── README.md
└── [项目文件 - 简洁,无缓存]
Windows简化版本生成:
dms-compliance-dual-amd64-windows-20250820-123456/
├── docker-compose.yml # 无version字段
├── Dockerfile
├── .env
├── start.bat # Windows批处理
├── stop.bat
├── logs.bat
├── docker-image.tar.gz
├── README.md
└── [项目文件 - 简洁,无缓存]
🚀 使用方法
WSL简化版本
bash create-compose-package-wsl-simple.sh
Windows简化版本
create-compose-package-windows-simple.bat
🎉 解决的问题
1. 文件过多问题 ✅
- 使用原始脚本的rsync逻辑排除缓存文件
- Windows版本使用robocopy的排除功能
- 生成的包现在和原始脚本一样简洁
2. Docker Compose警告 ✅
WARN[0000] the attribute `version` is obsolete
- 移除了过时的
version: '3.8'字段 - 使用现代的Docker Compose格式
3. WSL访问问题 ✅
- 保持了原始脚本的端口映射逻辑
- 简化了健康检查配置
- 移除了不必要的网络配置复杂性
4. 代码复杂度 ✅
- WSL版本:从1300+行减少到840行
- Windows版本:890行(包含批处理语法冗余)
- 保持了原始脚本的简洁性和可读性
📝 总结
现在你有了两个真正简化的版本:
-
WSL简化版本 (
create-compose-package-wsl-simple.sh)- 直接基于原始multiplatform脚本
- 添加了WSL兼容性设置
- 保持了原始的简洁结构
-
Windows简化版本 (
create-compose-package-windows-simple.bat)- 完整翻译了原始脚本逻辑
- 使用Windows原生工具
- 保持了相同的功能和流程
这些版本生成的包现在和原始脚本一样简洁,同时解决了所有的兼容性问题!🎉