feat:聊天信息支持 文件、图片、语音发送,增加一键启停脚本
This commit is contained in:
@@ -1,5 +1,27 @@
|
||||
#!/bin/bash
|
||||
# EchoChat 开发环境一键搭建脚本
|
||||
#!/usr/bin/env bash
|
||||
# ==============================================================================
|
||||
# EchoChat 开发环境【首次】初始化脚本
|
||||
# ------------------------------------------------------------------------------
|
||||
# ✅ 适用时机:
|
||||
# - 开发者首次 clone 仓库后
|
||||
# - 删除过所有 Docker 卷 / 需要重建数据库时
|
||||
# - 中间件容器长时间未使用、需要做一次性健康验证时
|
||||
#
|
||||
# ❌ 非适用时机(请改用 scripts/start.sh):
|
||||
# - 每天日常启停(开机/关机)
|
||||
# - 仅想拉起应用层(Go 后端 + 前台 + 管理端)
|
||||
#
|
||||
# 职责:
|
||||
# 1. 检查 Docker / Docker Compose 是否安装
|
||||
# 2. 启动 PostgreSQL + Redis + MinIO 容器(docker-compose up -d)
|
||||
# 3. 通过重试式健康检查(pg_isready / redis ping / MinIO /health/live)确认就绪
|
||||
# 4. 输出基础设施连接信息与默认管理员账号
|
||||
#
|
||||
# 日常启停请使用:
|
||||
# ./scripts/start.sh # 一键启动全部服务
|
||||
# ./scripts/stop.sh # 一键停止应用层
|
||||
# ./scripts/status.sh # 查看端口/PID/容器状态
|
||||
# ==============================================================================
|
||||
|
||||
set -e
|
||||
|
||||
@@ -8,16 +30,14 @@ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
||||
DEPLOY_DIR="$PROJECT_ROOT/deploy"
|
||||
|
||||
echo "========================================="
|
||||
echo " EchoChat 开发环境搭建"
|
||||
echo " EchoChat 开发环境【首次】搭建"
|
||||
echo "========================================="
|
||||
|
||||
# 检查 Docker 是否安装
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "❌ Docker 未安装,请先安装 Docker Desktop"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查 Docker Compose 是否可用
|
||||
if ! docker compose version &> /dev/null; then
|
||||
echo "❌ Docker Compose 不可用,请确保 Docker Desktop 已正确安装"
|
||||
exit 1
|
||||
@@ -25,19 +45,18 @@ fi
|
||||
|
||||
echo "✅ Docker 和 Docker Compose 已就绪"
|
||||
|
||||
# 启动基础设施服务
|
||||
echo ""
|
||||
echo "🚀 启动 PostgreSQL 和 Redis ..."
|
||||
echo "🚀 启动 PostgreSQL / Redis / MinIO ..."
|
||||
cd "$DEPLOY_DIR"
|
||||
docker compose -f docker-compose.dev.yml up -d
|
||||
docker compose -f docker-compose.dev.yml up -d postgres redis minio
|
||||
|
||||
# 等待服务就绪
|
||||
echo ""
|
||||
echo "⏳ 等待服务健康检查通过 ..."
|
||||
sleep 3
|
||||
|
||||
# 检查 PostgreSQL
|
||||
MAX_RETRIES=30
|
||||
|
||||
# PostgreSQL
|
||||
RETRY=0
|
||||
until docker exec echochat-postgres pg_isready -U echochat > /dev/null 2>&1; do
|
||||
RETRY=$((RETRY + 1))
|
||||
@@ -49,7 +68,7 @@ until docker exec echochat-postgres pg_isready -U echochat > /dev/null 2>&1; do
|
||||
done
|
||||
echo "✅ PostgreSQL 已就绪 (localhost:5432)"
|
||||
|
||||
# 检查 Redis
|
||||
# Redis
|
||||
RETRY=0
|
||||
until docker exec echochat-redis redis-cli ping > /dev/null 2>&1; do
|
||||
RETRY=$((RETRY + 1))
|
||||
@@ -61,17 +80,35 @@ until docker exec echochat-redis redis-cli ping > /dev/null 2>&1; do
|
||||
done
|
||||
echo "✅ Redis 已就绪 (localhost:6379)"
|
||||
|
||||
# MinIO:使用 /minio/health/live 端点(容器内 curl 检查)
|
||||
RETRY=0
|
||||
until docker exec echochat-minio curl -fs http://localhost:9000/minio/health/live > /dev/null 2>&1; do
|
||||
RETRY=$((RETRY + 1))
|
||||
if [ $RETRY -ge $MAX_RETRIES ]; then
|
||||
echo "❌ MinIO 启动超时"
|
||||
exit 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
echo "✅ MinIO 已就绪 (API: localhost:9000 | Console: localhost:9001)"
|
||||
|
||||
echo ""
|
||||
echo "========================================="
|
||||
echo " ✅ 开发环境搭建完成!"
|
||||
echo "========================================="
|
||||
echo ""
|
||||
echo " PostgreSQL: localhost:5432"
|
||||
echo " 数据库: echochat"
|
||||
echo " 用户名: echochat"
|
||||
echo " 密码: echochat_dev_2026"
|
||||
echo " PostgreSQL: localhost:5432"
|
||||
echo " 数据库: echochat"
|
||||
echo " 用户名: echochat"
|
||||
echo " 密码: echochat_dev_2026"
|
||||
echo ""
|
||||
echo " Redis: localhost:6379"
|
||||
echo " Redis: localhost:6379"
|
||||
echo ""
|
||||
echo " 管理员账号: admin / admin123456"
|
||||
echo " MinIO API: http://localhost:9000"
|
||||
echo " MinIO 控制台: http://localhost:9001"
|
||||
echo " 账号: echochat / echochat123456"
|
||||
echo ""
|
||||
echo " 管理员账号: admin / admin123456"
|
||||
echo ""
|
||||
echo " 👉 下一步:运行 ./scripts/start.sh 启动应用层服务"
|
||||
echo "========================================="
|
||||
|
||||
Reference in New Issue
Block a user