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:
37
deploy/docker-compose.arm64.yml
Normal file
37
deploy/docker-compose.arm64.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
services:
|
||||
db:
|
||||
image: postgres:15-alpine
|
||||
environment:
|
||||
POSTGRES_DB: debt_manager
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
volumes:
|
||||
- pgdata:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "54326:5432"
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
backend:
|
||||
image: debt-manager-backend:latest
|
||||
ports:
|
||||
- "8000:8000"
|
||||
environment:
|
||||
DATABASE_URL: postgresql+asyncpg://postgres:postgres@db:5432/debt_manager
|
||||
SECRET_KEY: change-this-in-production-please
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
|
||||
frontend:
|
||||
image: debt-manager-frontend:latest
|
||||
ports:
|
||||
- "806:80"
|
||||
depends_on:
|
||||
- backend
|
||||
|
||||
volumes:
|
||||
pgdata:
|
||||
37
deploy/docker-compose.x86.yml
Normal file
37
deploy/docker-compose.x86.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
services:
|
||||
db:
|
||||
image: postgres:15-alpine
|
||||
environment:
|
||||
POSTGRES_DB: debt_manager
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
volumes:
|
||||
- pgdata:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "54326:5432"
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
backend:
|
||||
image: debt-manager-backend:x86
|
||||
ports:
|
||||
- "8000:8000"
|
||||
environment:
|
||||
DATABASE_URL: postgresql+asyncpg://postgres:postgres@db:5432/debt_manager
|
||||
SECRET_KEY: change-this-in-production-please
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
|
||||
frontend:
|
||||
image: debt-manager-frontend:x86
|
||||
ports:
|
||||
- "806:80"
|
||||
depends_on:
|
||||
- backend
|
||||
|
||||
volumes:
|
||||
pgdata:
|
||||
@@ -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 "请务必修改默认密码!"
|
||||
|
||||
@@ -1,22 +1,6 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "========================================="
|
||||
echo " 债务管理系统 - 卸载"
|
||||
echo "========================================="
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
|
||||
echo ""
|
||||
echo "[1/2] 停止并删除容器..."
|
||||
cd "$SCRIPT_DIR"
|
||||
docker compose down -v
|
||||
|
||||
echo ""
|
||||
echo "[2/2] 删除 Docker 镜像..."
|
||||
docker rmi debt-manager-backend:latest debt-manager-frontend:latest postgres:15-alpine 2>/dev/null || true
|
||||
|
||||
echo ""
|
||||
echo "========================================="
|
||||
echo " 卸载完成"
|
||||
echo "========================================="
|
||||
echo "停止并删除容器..."
|
||||
docker compose -f docker-compose.x86.yml down -v 2>/dev/null || true
|
||||
docker compose -f docker-compose.arm64.yml down -v 2>/dev/null || true
|
||||
docker compose down -v 2>/dev/null || true
|
||||
echo "卸载完成"
|
||||
|
||||
Reference in New Issue
Block a user