#!/bin/bash # PolyHermes 一体化部署脚本 # 将前后端一起部署到一个 Docker 容器中 set -e # 颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 打印信息 info() { echo -e "${GREEN}[INFO]${NC} $1" } warn() { echo -e "${YELLOW}[WARN]${NC} $1" } error() { echo -e "${RED}[ERROR]${NC} $1" } # 检查 Docker 环境 check_docker() { if ! command -v docker &> /dev/null; then error "Docker 未安装,请先安装 Docker" exit 1 fi if ! command -v docker-compose &> /dev/null; then error "Docker Compose 未安装,请先安装 Docker Compose" exit 1 fi info "Docker 环境检查通过" } # 生成随机字符串 generate_random_string() { local length=${1:-32} openssl rand -hex $length 2>/dev/null || \ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w $length | head -n 1 } # 创建 .env 文件(如果不存在) create_env_file() { if [ ! -f ".env" ]; then warn ".env 文件不存在,创建示例文件..." # 生成随机值 DB_PASSWORD=$(generate_random_string 32) JWT_SECRET=$(generate_random_string 64) ADMIN_RESET_KEY=$(generate_random_string 32) cat > .env <