40 lines
1023 B
Bash
40 lines
1023 B
Bash
#!/bin/bash
|
|
|
|
# 定义变量
|
|
IMAGE_NAME="lightrag-service"
|
|
CONTAINER_NAME="lightrag-container"
|
|
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"
|