| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #!/bin/bash
- echo "======================================"
- echo " Chroma 向量数据库部署脚本"
- echo "======================================"
- echo ""
- DEPLOY_DIR="/opt/chroma"
- DATA_DIR="/data/chroma"
- echo "[1/5] 检查环境..."
- if ! command -v docker &> /dev/null; then
- echo "错误: Docker 未安装,请先安装 Docker"
- exit 1
- fi
- if ! command -v docker-compose &> /dev/null; then
- echo "错误: Docker Compose 未安装,请先安装 Docker Compose"
- exit 1
- fi
- echo "[2/5] 创建目录..."
- mkdir -p $DEPLOY_DIR
- mkdir -p $DATA_DIR/chroma_data
- echo "[3/5] 生成配置文件..."
- cat > $DEPLOY_DIR/docker-compose.yml << 'EOF'
- version: '3.8'
- services:
- chroma:
- image: chromadb/chroma:latest
- container_name: chroma_server
- ports:
- - "8000:8000"
- volumes:
- - /data/chroma/chroma_data:/chroma/chroma_data
- environment:
- - CHROMA_SERVER_HOST=0.0.0.0
- - CHROMA_SERVER_HTTP_PORT=8000
- - CHROMA_SERVER_AUTH_CREDENTIALS=${CHROMA_AUTH_TOKEN}
- - CHROMA_SERVER_AUTH_PROVIDER=chromadb.auth.token.TokenAuthProvider
- - ANONYMIZED_TELEMETRY=False
- restart: unless-stopped
- healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost:8000/api/v1/heartbeat"]
- interval: 30s
- timeout: 10s
- retries: 3
- networks:
- - chroma_network
- networks:
- chroma_network:
- driver: bridge
- EOF
- AUTH_TOKEN=$(openssl rand -hex 32)
- cat > $DEPLOY_DIR/.env << EOF
- CHROMA_AUTH_TOKEN=$AUTH_TOKEN
- EMBEDDING_API_KEY=your_embedding_api_key_here
- OPENAI_API_KEY=your_openai_api_key_here
- EOF
- echo "[4/5] 启动服务..."
- cd $DEPLOY_DIR
- docker-compose up -d
- echo "[5/5] 等待服务启动..."
- sleep 10
- echo ""
- echo "======================================"
- echo " 部署完成!"
- echo "======================================"
- echo ""
- echo "服务地址: http://localhost:8000"
- echo "认证Token: $AUTH_TOKEN"
- echo ""
- echo "验证命令: curl http://localhost:8000/api/v1/heartbeat"
- echo ""
- echo "配置文件位置: $DEPLOY_DIR/.env"
- echo ""
|