#!/bin/bash

set -e

echo "🚀 开始构建 Filament Admin Docker 镜像..."

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 检查是否存在 .env 文件
if [ ! -f .env ]; then
    echo -e "${YELLOW}⚠️  警告：未找到 .env 文件，将使用示例配置${NC}"
    if [ -f .env.example ]; then
        cp .env.example .env
        echo -e "${GREEN}✅ 已复制 .env.example 到 .env${NC}"
    else
        echo -e "${RED}❌ 错误：无法找到 .env.example 文件${NC}"
        exit 1
    fi
fi

# 构建镜像
echo -e "${YELLOW}📦 构建 Docker 镜像...${NC}"
docker compose build --no-cache --progress=plain

# 加载镜像到本地
echo -e "${YELLOW}💾 保存镜像到文件以便传输...${NC}"
docker save filamentadmin:latest | gzip > filamentadmin.tar.gz
echo -e "${GREEN}✅ 镜像已保存到 filamentadmin.tar.gz${NC}"

# 显示镜像信息
echo -e "${GREEN}📊 镜像信息：${NC}"
docker images filamentadmin:latest

echo -e "${GREEN}🎉 构建完成！${NC}"
echo ""
echo -e "${YELLOW}💡 使用方法：${NC}"
echo -e "1. 将 filamentadmin.tar.gz 传输到目标服务器"
echo -e "2. 在目标服务器上运行："
echo -e "   ${GREEN}gunzip -c filamentadmin.tar.gz | docker load${NC}"
echo -e "   ${GREEN}docker compose up -d${NC}"
echo ""
