build.sh 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/bin/bash
  2. set -e
  3. echo "🚀 开始构建 Filament Admin Docker 镜像..."
  4. # 颜色定义
  5. RED='\033[0;31m'
  6. GREEN='\033[0;32m'
  7. YELLOW='\033[1;33m'
  8. NC='\033[0m' # No Color
  9. # 检查是否存在 .env 文件
  10. if [ ! -f .env ]; then
  11. echo -e "${YELLOW}⚠️ 警告:未找到 .env 文件,将使用示例配置${NC}"
  12. if [ -f .env.example ]; then
  13. cp .env.example .env
  14. echo -e "${GREEN}✅ 已复制 .env.example 到 .env${NC}"
  15. else
  16. echo -e "${RED}❌ 错误:无法找到 .env.example 文件${NC}"
  17. exit 1
  18. fi
  19. fi
  20. # 构建镜像
  21. echo -e "${YELLOW}📦 构建 Docker 镜像...${NC}"
  22. docker compose build --no-cache --progress=plain
  23. # 加载镜像到本地
  24. echo -e "${YELLOW}💾 保存镜像到文件以便传输...${NC}"
  25. docker save filamentadmin:latest | gzip > filamentadmin.tar.gz
  26. echo -e "${GREEN}✅ 镜像已保存到 filamentadmin.tar.gz${NC}"
  27. # 显示镜像信息
  28. echo -e "${GREEN}📊 镜像信息:${NC}"
  29. docker images filamentadmin:latest
  30. echo -e "${GREEN}🎉 构建完成!${NC}"
  31. echo ""
  32. echo -e "${YELLOW}💡 使用方法:${NC}"
  33. echo -e "1. 将 filamentadmin.tar.gz 传输到目标服务器"
  34. echo -e "2. 在目标服务器上运行:"
  35. echo -e " ${GREEN}gunzip -c filamentadmin.tar.gz | docker load${NC}"
  36. echo -e " ${GREEN}docker compose up -d${NC}"
  37. echo ""