#!/usr/bin/env bash # ══════════════════════════════════════════════════ # 04_build_services.sh # 构建自定义服务 Docker 镜像 # embedding-service / mcp-server / compliance-backend # 用法:bash scripts/04_build_services.sh # ══════════════════════════════════════════════════ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" cd "$PROJECT_DIR" BLUE='\033[0;34m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m' info() { echo -e "${BLUE}[INFO]${NC} $*"; } ok() { echo -e "${GREEN}[OK]${NC} $*"; } warn() { echo -e "${YELLOW}[WARN]${NC} $*"; } info "══════════════════════════════════════════" info " 构建自定义服务镜像" info "══════════════════════════════════════════" warn "首次构建较慢(需下载 Python 依赖 + AI 模型)" warn "BGE-M3 模型约 2.5GB,MinerU 模型约 2GB" echo "" # ── 构建嵌入服务 ──────────────────────────────── info "构建 embedding-service(BGE-M3)..." START=$(date +%s) docker compose build embedding-service END=$(date +%s) ok "embedding-service 构建完成($(( END - START ))s)" echo "" # ── 构建 MinerU 解析服务 ──────────────────────── info "构建 mcp-server(MinerU)..." START=$(date +%s) docker compose build mcp-server END=$(date +%s) ok "mcp-server 构建完成($(( END - START ))s)" echo "" # ── 构建业务后端 ──────────────────────────────── info "构建 compliance-backend..." START=$(date +%s) docker compose build compliance-backend END=$(date +%s) ok "compliance-backend 构建完成($(( END - START ))s)" echo "" # ── 列出构建的镜像 ────────────────────────────── info "已构建的镜像:" docker images | grep -E "compliance-(embedding|mcp|backend)" || true echo "" echo -e "${GREEN}══════════════════════════════════════════${NC}" echo -e "${GREEN} 所有服务镜像构建完成!${NC}" echo -e "${GREEN}══════════════════════════════════════════${NC}" echo "" echo "下一步:bash scripts/05_init_db.sh"