71f0a1abdb
- 所有Go模块路径从 github.com/yourname/cyrene-ai 迁移到 git.yeij.top/AskaEth/Cyrene - 5个Go Dockerfile添加 GOPROXY=https://goproxy.cn,direct 解决国内构建问题 - ai-core go.mod 添加 pkg/plugins replace 指令 - Caddyfile 简化为 http:// 通配 + handle 保留 /api 前缀 - ethend Dockerfile 适配 (npm install + 仅 COPY package.json) - ethend 新增 RUNNING_IN_DOCKER 环境变量,健康检查改用Docker服务名 - ethend 数据库状态检查支持Docker hostname (postgres/redis/qdrant/minio) - process-manager 新增 CONTAINER_SVC_MAP + Docker模式自动检测 - 统一 docker-compose.dev.db.yml 卷名 (pg_data/redis_data/qdrant_data/minio_data) - docker-compose.yml ethend服务挂载docker.sock + 端口变量化 - 清理 .env 统一后的残留文件与提示信息 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
91 lines
3.5 KiB
Bash
Executable File
91 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
||
# ============================================================
|
||
# Cyrene 项目迁移打包脚本
|
||
# 用途: 在 Linux 环境下生成干净的源代码压缩包,
|
||
# 用于迁移到 Windows 平台。
|
||
# 用法: bash scripts/migrate.sh [输出目录]
|
||
# ============================================================
|
||
|
||
set -euo pipefail
|
||
|
||
# 输出目录,默认为 /tmp
|
||
OUTPUT_DIR="${1:-/tmp}"
|
||
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||
ARCHIVE_NAME="cyrene-source-${TIMESTAMP}.tar.gz"
|
||
PROJECT_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||
|
||
echo "=== Cyrene 源码打包 ==="
|
||
echo "项目根目录: ${PROJECT_ROOT}"
|
||
echo "输出文件: ${OUTPUT_DIR}/${ARCHIVE_NAME}"
|
||
echo ""
|
||
|
||
# 确保输出目录存在
|
||
mkdir -p "${OUTPUT_DIR}"
|
||
|
||
cd "${PROJECT_ROOT}"
|
||
|
||
echo "正在打包..."
|
||
|
||
# 打包源码,排除二进制和编译产物
|
||
# --exclude 规则说明:
|
||
# *.exe - Windows 可执行文件(旧的编译产物)
|
||
# backend/*/main - Go 编译生成的 Linux 二进制
|
||
# backend/*/cmd/* (非.go) - 各服务的编译产物
|
||
# node_modules - Node.js 依赖
|
||
# dist - 前端构建产物
|
||
# .env - 敏感配置文件
|
||
# *.log / logs/ - 日志文件
|
||
# tmp/ - 临时文件
|
||
# .git/objects/refs/logs - Git 内部数据(保留 HEAD 和 config)
|
||
# package-lock.json - 锁文件(跨平台重新生成)
|
||
#
|
||
tar -czf "${OUTPUT_DIR}/${ARCHIVE_NAME}" \
|
||
--exclude='*.exe' \
|
||
--exclude='main' \
|
||
--exclude='backend/ai-core/main' \
|
||
--exclude='backend/ai-core/cmd/ai-core' \
|
||
--exclude='backend/gateway/main' \
|
||
--exclude='backend/gateway/cmd/main' \
|
||
--exclude='backend/memory-service/main' \
|
||
--exclude='backend/memory-service/cmd/memory-service' \
|
||
--exclude='backend/tool-engine/cmd/tool-engine' \
|
||
--exclude='backend/iot-debug-service/cmd/iot-debug-service' \
|
||
--exclude='backend/voice-service/cmd/voice-service' \
|
||
--exclude='node_modules' \
|
||
--exclude='frontend/web/node_modules' \
|
||
--exclude='frontend/web/dist' \
|
||
--exclude='frontend/node_modules' \
|
||
--exclude='ethend/node_modules' \
|
||
--exclude='frontend/packages/*/node_modules' \
|
||
--exclude='.env' \
|
||
--exclude='backend/.env' \
|
||
--exclude='*.log' \
|
||
--exclude='logs/' \
|
||
--exclude='debug/logs/' \
|
||
--exclude='debug/logs/chromium/' \
|
||
--exclude='tmp/' \
|
||
--exclude='.git/objects' \
|
||
--exclude='.git/refs' \
|
||
--exclude='.git/logs' \
|
||
--exclude='package-lock.json' \
|
||
--exclude='frontend/web/package-lock.json' \
|
||
--exclude='frontend/package-lock.json' \
|
||
--exclude='frontend/packages/*/package-lock.json' \
|
||
.
|
||
|
||
echo ""
|
||
echo "✅ 打包完成!"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "文件: ${OUTPUT_DIR}/${ARCHIVE_NAME}"
|
||
echo "大小: $(du -h "${OUTPUT_DIR}/${ARCHIVE_NAME}" | cut -f1)"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
echo "=== 迁移到 Windows 的步骤 ==="
|
||
echo "1. 将 ${ARCHIVE_NAME} 传输到 Windows 机器(U盘 / 网络共享 / scp)"
|
||
echo "2. 在 Windows 上解压: tar -xzf ${ARCHIVE_NAME}"
|
||
echo "3. 阅读 Migration.md 了解完整迁移流程"
|
||
echo "4. 复制 .env.example 为 .env 并填入实际配置"
|
||
echo "5. 编译并启动服务(参考 Migration.md 第 6 章)"
|
||
echo ""
|
||
echo "提示: 压缩包中已包含文档 docs/ 和 Migration.md,解压后即可查看。"
|