# SOC Chat Clone - Local Docker Commands (lightweight) # 基础设施用 Azure 云服务,本地只运行 LangGraph Server + Frontend # ==================================================================== # make dev - 开发模式(热重载) # make prod - 生产模式 # make down - 停止 # make logs - 查看日志 .PHONY: dev prod down logs clean status setup check-env build-dev build-prod restart-backend restart-frontend # ─── Environment ───────────────────────────────────────────────── check-env: @if [ ! -f langgraph/.env ]; then \ echo "ERROR: langgraph/.env not found."; \ echo " Run: make setup"; \ exit 1; \ fi setup: @if [ ! -f langgraph/.env ]; then \ cp langgraph/.env.docker.example langgraph/.env; \ echo "Created langgraph/.env — 请检查并填入 GOOGLE_API_KEY 等缺失值"; \ else \ echo "langgraph/.env already exists, skipping."; \ fi # ─── Development ───────────────────────────────────────────────── dev: check-env docker compose --profile dev up --build dev-d: check-env docker compose --profile dev up --build -d build-dev: docker compose --profile dev build # ─── Production ────────────────────────────────────────────────── prod: check-env docker compose --profile prod up --build prod-d: check-env docker compose --profile prod up --build -d build-prod: docker compose --profile prod build # ─── Lifecycle ─────────────────────────────────────────────────── down: docker compose --profile dev --profile prod down clean: docker compose --profile dev --profile prod down --rmi local @echo "All containers stopped and images removed." restart-backend: docker compose restart langgraph-dev 2>/dev/null || docker compose restart langgraph-prod 2>/dev/null restart-frontend: docker compose restart frontend-dev 2>/dev/null || docker compose restart frontend-prod 2>/dev/null # ─── Observability ─────────────────────────────────────────────── logs: docker compose --profile dev --profile prod logs -f logs-backend: docker compose logs -f langgraph-dev langgraph-prod 2>/dev/null logs-frontend: docker compose logs -f frontend-dev frontend-prod 2>/dev/null status: @echo "=== Container Status ===" @docker compose --profile dev --profile prod ps @echo "" @echo "=== Endpoints ===" @echo " Frontend (dev): http://localhost:5173" @echo " Frontend (prod): http://localhost:3000" @echo " LangGraph API: http://localhost:2024" @echo "" @echo "=== Azure Cloud Services ===" @echo " PostgreSQL: dataope.postgres.database.azure.com" @echo " Redis: oper.redis.cache.windows.net:6380" @echo " Blob: authdatablol.blob.core.windows.net" @echo " Service Bus: databus.servicebus.windows.net"