37 lines
867 B
Bash
37 lines
867 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 "启动服务..."
|
|
# 注意:使用 --env-file 挂载环境变量
|
|
# 使用 -v 挂载数据卷,确保数据持久化
|
|
docker run -d \
|
|
--name $CONTAINER_NAME \
|
|
-p $PORT:$PORT \
|
|
--env-file .env \
|
|
-v "$DATA_DIR":/app/index_data \
|
|
--restart unless-stopped \
|
|
$IMAGE_NAME
|
|
|
|
echo "服务已启动: http://localhost:$PORT"
|
|
echo "查看日志: docker logs -f $CONTAINER_NAME"
|