#!/bin/bash # 定义变量 IMAGE_NAME="lightrag-service" CONTAINER_NAME="ai_knowledge" PORT=9600 DATA_DIR="$(pwd)/index_data" # 确保数据目录存在 mkdir -p "$DATA_DIR" # 1. 构建镜像 echo "正在构建 Docker 镜像..." docker build -t $IMAGE_NAME . # 2. 停止旧容器 if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then echo "停止并删除旧容器..." docker stop $CONTAINER_NAME docker rm $CONTAINER_NAME fi # 3. 启动新容器 echo "启动服务..." # 注意: # 1. 使用 --env-file 挂载环境变量 # 2. 使用 -v 挂载数据卷,确保数据持久化 # 3. 使用 --add-host 允许容器访问宿主机的 Ollama/vLLM 服务 (host.docker.internal) docker run -d \ --name $CONTAINER_NAME \ -p $PORT:$PORT \ --env-file .env \ -v "$DATA_DIR":/app/index_data \ --add-host=host.docker.internal:host-gateway \ --restart unless-stopped \ $IMAGE_NAME echo "服务已启动: http://localhost:$PORT" echo "查看日志: docker logs -f $CONTAINER_NAME"