build: 添加 x86 和 arm64 双架构部署包

- 构建 x86 (linux/amd64) backend 和 frontend 镜像
- 导出 arm64 和 x86 两种架构的 tar.gz 镜像包
- 添加 docker-compose.x86.yml 和 docker-compose.arm64.yml
- install.sh 自动检测架构并加载对应镜像
- 部署包约 200MB (backend 75M x2 + frontend 24M x2 + postgres 106M)
This commit is contained in:
OP
2026-06-28 23:07:06 +08:00
parent 75875606a2
commit a49a5a7cff
4 changed files with 143 additions and 47 deletions

View File

@@ -1,39 +1,77 @@
#!/bin/bash
set -e
echo "========================================="
echo " 债务管理系统 - 一键安装"
echo "========================================="
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
echo ""
echo "[1/3] 加载 Docker 镜像..."
docker load -i "$SCRIPT_DIR/debt-manager-backend.tar.gz"
docker load -i "$SCRIPT_DIR/debt-manager-frontend.tar.gz"
docker load -i "$SCRIPT_DIR/postgres-15-alpine.tar.gz"
echo ""
echo "[2/3] 启动服务..."
cd "$SCRIPT_DIR"
docker compose up -d
echo "=========================================="
echo " 债务管理系统 v2.2 安装脚本"
echo "=========================================="
# Detect architecture
ARCH=$(uname -m)
case "$ARCH" in
x86_64|amd64)
ARCH_NAME="x86"
COMPOSE_FILE="docker-compose.x86.yml"
BACKEND_IMAGE="debt-manager-backend:x86"
FRONTEND_IMAGE="debt-manager-frontend:x86"
BACKEND_TAR="debt-manager-backend-x86.tar.gz"
FRONTEND_TAR="debt-manager-frontend-x86.tar.gz"
;;
aarch64|arm64)
ARCH_NAME="arm64"
COMPOSE_FILE="docker-compose.arm64.yml"
BACKEND_IMAGE="debt-manager-backend:latest"
FRONTEND_IMAGE="debt-manager-frontend:latest"
BACKEND_TAR="debt-manager-backend-arm64.tar.gz"
FRONTEND_TAR="debt-manager-frontend-arm64.tar.gz"
;;
*)
echo "不支持的架构: $ARCH"
exit 1
;;
esac
echo "检测到架构: $ARCH_NAME ($ARCH)"
echo ""
# Load images
echo "加载 Docker 镜像..."
docker load < "$BACKEND_TAR"
docker load < "$FRONTEND_TAR"
docker load < postgres-15-alpine.tar.gz
# Generate secure keys
SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_hex(32))" 2>/dev/null || openssl rand -hex 32)
DB_PASSWORD=$(python3 -c "import secrets; print(secrets.token_hex(16))" 2>/dev/null || openssl rand -hex 16)
echo ""
echo "[3/3] 等待服务就绪..."
sleep 5
echo "生成安全密钥..."
# Create .env file
cat > .env << EOF
POSTGRES_DB=debt_manager
POSTGRES_USER=postgres
POSTGRES_PASSWORD=$DB_PASSWORD
DATABASE_URL=postgresql+asyncpg://postgres:$DB_PASSWORD@db:5432/debt_manager
SECRET_KEY=$SECRET_KEY
ADMIN_PASSWORD=Admin123!
EOF
echo "配置文件已创建"
echo ""
echo "========================================="
echo "=========================================="
echo " 安装完成!"
echo "========================================="
echo "=========================================="
echo ""
echo " 前台地址: http://localhost:806"
echo " 后台地址: http://localhost:806/admin.html"
echo " API 文档: http://localhost:8000/docs"
echo "启动命令: docker compose -f $COMPOSE_FILE up -d"
echo ""
echo " 默认账号: admin / admin123"
echo " 默认账号: test / test123"
echo "访问地址:"
echo " 前台: http://localhost:806"
echo " 后台: http://localhost:806/admin.html"
echo ""
echo " 停止服务: docker compose -f $SCRIPT_DIR/docker-compose.yml down"
echo " 查看日志: docker compose -f $SCRIPT_DIR/docker-compose.yml logs -f"
echo "========================================="
echo "管理员账号: admin"
echo "管理员密码: Admin123!"
echo ""
echo "请务必修改默认密码!"