Files
AskaEth 71f0a1abdb feat: Go模块路径迁移 + Docker生产部署适配 + ethend Docker兼容
- 所有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>
2026-05-30 13:43:22 +08:00

91 lines
3.5 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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,解压后即可查看。"