| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #!/bin/bash
- # 物联网基站基础服务启动脚本
- set -e
- echo "=== 启动物联网基站基础服务 ==="
- # 检查Docker是否运行
- if ! docker info > /dev/null 2>&1; then
- echo "错误: Docker未运行,请先启动Docker"
- exit 1
- fi
- # 检查Docker Compose是否安装
- if ! command -v docker-compose &> /dev/null; then
- echo "错误: Docker Compose未安装,请先安装Docker Compose"
- exit 1
- fi
- # 检查Redis是否已运行
- REDIS_RUNNING=false
- if docker ps --format "table {{.Names}}" | grep -q "redis"; then
- echo "✓ 检测到Redis容器已运行"
- REDIS_RUNNING=true
- elif redis-cli ping > /dev/null 2>&1; then
- echo "✓ 检测到本地Redis服务已运行"
- REDIS_RUNNING=true
- else
- echo "! Redis服务未运行,将启动Docker中的Redis"
- fi
- # 启动服务
- if [ "$REDIS_RUNNING" = true ]; then
- echo "启动除Redis外的服务..."
- docker-compose -f docker-compose-without-redis.yml up -d
- else
- echo "启动所有服务..."
- docker-compose up -d
- fi
- # 等待服务启动
- echo "等待服务启动..."
- sleep 15
- # 检查服务状态
- echo "检查服务状态..."
- docker-compose ps
- # 初始化数据库
- echo "初始化数据库..."
- if docker-compose exec -T postgres pg_isready -U postgres > /dev/null 2>&1; then
- docker-compose exec -T postgres psql -U postgres -c "CREATE DATABASE iot_base_station;" || echo "数据库可能已存在"
-
- # 运行数据库迁移
- echo "运行数据库迁移..."
- go run cmd/migrate/main.go up
- else
- echo "警告: PostgreSQL未就绪,请手动运行迁移"
- fi
- # 显示服务信息
- echo ""
- echo "=== 服务信息 ==="
- echo "PostgreSQL: localhost:5432"
- echo "InfluxDB: http://localhost:8086"
- echo "Redis: localhost:6379"
- echo "NATS: localhost:4222"
- echo "MQTT: localhost:1883"
- echo "Grafana: http://localhost:3000 (admin/admin)"
- echo "Prometheus: http://localhost:9090"
- # 显示下一步操作
- echo ""
- echo "=== 下一步操作 ==="
- echo "1. 启动主服务器: go run cmd/server/main.go"
- echo "2. 启动数据网关: go run cmd/gateway/main.go"
- echo "3. 启动监控服务: go run cmd/monitor/main.go"
- echo "4. 运行设备模拟器: go run simulations/main.go"
- echo ""
- echo "或者使用热重载: air -c .air.toml"
- echo ""
- echo "测试API: curl -X GET http://localhost:8080/health"
- echo ""
|