#!/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 ""