anhuiqiang пре 1 недеља
родитељ
комит
9e17456b27
5 измењених фајлова са 168 додато и 47 уклоњено
  1. 18 0
      build_and_push.bat
  2. 12 0
      build_and_push.sh
  3. 9 2
      deploy.sh
  4. 83 0
      docker-compose.prod.yml
  5. 46 45
      docker-compose.yml

+ 18 - 0
build_and_push.bat

@@ -24,6 +24,15 @@ if %errorlevel% neq 0 (
     exit /b %errorlevel%
 )
 
+echo.
+echo ^>^> Building libreoffice image...
+docker build -t registry.cn-qingdao.aliyuncs.com/fzxs/aurak-libreoffice:latest -f ./libreoffice-server/Dockerfile ./libreoffice-server
+if %errorlevel% neq 0 (
+    echo LibreOffice build failed! Please check if Docker is running and network is connected.
+    pause
+    exit /b %errorlevel%
+)
+
 echo.
 echo ^>^> Pushing server image...
 docker push registry.cn-qingdao.aliyuncs.com/fzxs/aurak-server:latest
@@ -42,6 +51,15 @@ if %errorlevel% neq 0 (
     exit /b %errorlevel%
 )
 
+echo.
+echo ^>^> Pushing libreoffice image...
+docker push registry.cn-qingdao.aliyuncs.com/fzxs/aurak-libreoffice:latest
+if %errorlevel% neq 0 (
+    echo Push libreoffice failed! Please check if you have logged in to Aliyun registry.
+    pause
+    exit /b %errorlevel%
+)
+
 echo.
 echo =======================================================
 echo Images successfully built and pushed!

+ 12 - 0
build_and_push.sh

@@ -20,6 +20,12 @@ if ! docker build -t registry.cn-qingdao.aliyuncs.com/fzxs/aurak-web:latest --bu
     exit 1
 fi
 
+echo ">> 构建 libreoffice 镜像..."
+if ! docker build -t registry.cn-qingdao.aliyuncs.com/fzxs/aurak-libreoffice:latest -f ./libreoffice-server/Dockerfile ./libreoffice-server; then
+    echo "libreoffice 构建失败!请检查 Docker 是否运行以及构建环境。"
+    exit 1
+fi
+
 echo ">> 推送 server 镜像..."
 if ! docker push registry.cn-qingdao.aliyuncs.com/fzxs/aurak-server:latest; then
     echo "推送 server 失败!请检查是否已登录阿里云镜像仓库:"
@@ -33,6 +39,12 @@ if ! docker push registry.cn-qingdao.aliyuncs.com/fzxs/aurak-web:latest; then
     exit 1
 fi
 
+echo ">> 推送 libreoffice 镜像..."
+if ! docker push registry.cn-qingdao.aliyuncs.com/fzxs/aurak-libreoffice:latest; then
+    echo "推送 libreoffice 失败!请检查是否已登录阿里云镜像仓库:"
+    exit 1
+fi
+
 echo "======================================================="
 echo "镜像构建并推送成功!"
 echo "======================================================="

+ 9 - 2
deploy.sh

@@ -8,7 +8,7 @@ echo "======================================================="
 echo "开始在服务器上拉取镜像并一键部署"
 echo "======================================================="
 
-echo ">> 正在从阿里云镜像库拉取最新的 server 和 web 镜像..."
+echo ">> 正在从阿里云镜像库拉取最新的 server、web 和 libreoffice 镜像..."
 # 如果拉取需要密码,请确保服务器上已经执行过 docker login
 if ! docker pull registry.cn-qingdao.aliyuncs.com/fzxs/aurak-server:latest; then
     echo "拉取 server 镜像失败!请确保服务器已登录 registry.cn-qingdao.aliyuncs.com"
@@ -20,9 +20,15 @@ if ! docker pull registry.cn-qingdao.aliyuncs.com/fzxs/aurak-web:latest; then
     exit 1
 fi
 
+if ! docker pull registry.cn-qingdao.aliyuncs.com/fzxs/aurak-libreoffice:latest; then
+    echo "拉取 libreoffice 镜像失败!请确保服务器已登录 registry.cn-qingdao.aliyuncs.com"
+    exit 1
+fi
+
 echo ">> 为了让 docker-compose 能直接使用拉取的镜像,重新标记(Tag)镜像..."
 docker tag registry.cn-qingdao.aliyuncs.com/fzxs/aurak-server:latest aurak-server:latest 2>/dev/null || true
 docker tag registry.cn-qingdao.aliyuncs.com/fzxs/aurak-web:latest aurak-web:latest 2>/dev/null || true
+docker tag registry.cn-qingdao.aliyuncs.com/fzxs/aurak-libreoffice:latest aurak-libreoffice:latest 2>/dev/null || true
 
 # 因为 docker-compose 没有指定 image,会默认通过文件夹名字或我们指定的标签运行
 # 如果 docker-compose 仍然会去找默认名字,我们需要让环境变量里的 image 为我们拉取的,
@@ -32,10 +38,11 @@ docker tag registry.cn-qingdao.aliyuncs.com/fzxs/aurak-web:latest aurak-web:late
 # 如果目录叫 AuraK,docker-compose 默认生成的镜像名叫 aurak-server 和 aurak-web
 docker tag registry.cn-qingdao.aliyuncs.com/fzxs/aurak-server:latest aurak-server 2>/dev/null || true
 docker tag registry.cn-qingdao.aliyuncs.com/fzxs/aurak-web:latest aurak-web 2>/dev/null || true
+docker tag registry.cn-qingdao.aliyuncs.com/fzxs/aurak-libreoffice:latest aurak-libreoffice 2>/dev/null || true
 
 echo ">> 正在重新创建并启动容器..."
 # --no-build 确保在服务器上不会意外使用本地代码触发构建
-docker compose up -d --no-build server web
+docker compose up -d --no-build server web libreoffice
 
 echo "======================================================="
 echo "部署完成!当前服务运行状态:"

+ 83 - 0
docker-compose.prod.yml

@@ -0,0 +1,83 @@
+services:
+  es:
+    image: elasticsearch:9.2.1
+    container_name: aurak-es
+    environment:
+      - discovery.type=single-node
+      - xpack.security.enabled=false
+      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+    ports:
+      - "9200:9200"
+    volumes:
+      - es-data:/usr/share/elasticsearch/data
+    networks:
+      - aurak-network
+
+  tika:
+    image: apache/tika:latest
+    container_name: aurak-tika
+    ports:
+      - "9998:9998"
+    networks:
+      - aurak-network
+    restart: unless-stopped
+
+  libreoffice:
+    image: registry.cn-qingdao.aliyuncs.com/fzxs/aurak-libreoffice:latest
+    container_name: aurak-libreoffice
+    ports:
+      - "8100:8100"
+    volumes:
+      - ./uploads:/app/uploads
+      - ./temp:/temp
+    networks:
+      - aurak-network
+    restart: unless-stopped
+
+  server:
+    image: registry.cn-qingdao.aliyuncs.com/fzxs/aurak-server:latest
+    container_name: aurak-server
+    environment:
+      - NODE_ENV=production
+      - NODE_OPTIONS=--max-old-space-size=8192
+      - PORT=3001
+      - DATABASE_PATH=/app/data/metadata.db
+      - ELASTICSEARCH_HOST=http://es:9200
+      - TIKA_HOST=http://tika:9998
+      - LIBREOFFICE_URL=http://libreoffice:8100
+      - JWT_SECRET=13405a7d-742a-41f5-8b34-012735acffea
+      - UPLOAD_FILE_PATH=/app/uploads
+      - DEFAULT_VECTOR_DIMENSIONS=2048
+      - TEMP_DIR=/app/temp
+      - CHUNK_BATCH_SIZE=50
+    volumes:
+      - ./data:/app/data
+      - ./uploads:/app/uploads
+      - ./temp:/app/temp
+    depends_on:
+      - es
+      - tika
+      - libreoffice
+    networks:
+      - aurak-network
+
+  web:
+    image: registry.cn-qingdao.aliyuncs.com/fzxs/aurak-web:latest
+    container_name: aurak-web
+    depends_on:
+      - server
+    ports:
+      - "80:80"
+      - "443:443"
+    volumes:
+      - ./nginx/conf.d:/etc/nginx/conf.d
+    networks:
+      - aurak-network
+
+networks:
+  aurak-network:
+    driver: bridge
+
+volumes:
+  es-data:
+    driver: local

+ 46 - 45
docker-compose.yml

@@ -24,6 +24,7 @@ services:
     restart: unless-stopped
 
   libreoffice:
+    image: aurak-libreoffice:latest
     build:
       context: ./libreoffice-server
       dockerfile: Dockerfile
@@ -58,52 +59,52 @@ services:
   #     echo 'All models pulled successfully!' && 
   #     wait"
 
-  server:
-    build:
-      context: ./server
-      dockerfile: Dockerfile
-    container_name: aurak-server
-    environment:
-      - NODE_ENV=production
-      - NODE_OPTIONS=--max-old-space-size=8192
-      - PORT=3001
-      - DATABASE_PATH=/app/data/metadata.db
-      - ELASTICSEARCH_HOST=http://es:9200
-      - TIKA_HOST=http://tika:9998
-      - LIBREOFFICE_URL=http://libreoffice:8100
-      - JWT_SECRET=13405a7d-742a-41f5-8b34-012735acffea
-      - UPLOAD_FILE_PATH=/app/uploads
-      - DEFAULT_VECTOR_DIMENSIONS=2048
-      - TEMP_DIR=/app/temp
-      - CHUNK_BATCH_SIZE=50
-    volumes:
-      - ./data:/app/data
-      - ./uploads:/app/uploads
-      - ./temp:/app/temp
-    depends_on:
-      - es
-      - tika
-      - libreoffice
-    #    restart: unless-stopped
-    networks:
-      - aurak-network
+  # server:
+  #   build:
+  #     context: ./server
+  #     dockerfile: Dockerfile
+  #   container_name: aurak-server
+  #   environment:
+  #     - NODE_ENV=production
+  #     - NODE_OPTIONS=--max-old-space-size=8192
+  #     - PORT=3001
+  #     - DATABASE_PATH=/app/data/metadata.db
+  #     - ELASTICSEARCH_HOST=http://es:9200
+  #     - TIKA_HOST=http://tika:9998
+  #     - LIBREOFFICE_URL=http://libreoffice:8100
+  #     - JWT_SECRET=13405a7d-742a-41f5-8b34-012735acffea
+  #     - UPLOAD_FILE_PATH=/app/uploads
+  #     - DEFAULT_VECTOR_DIMENSIONS=2048
+  #     - TEMP_DIR=/app/temp
+  #     - CHUNK_BATCH_SIZE=50
+  #   volumes:
+  #     - ./data:/app/data
+  #     - ./uploads:/app/uploads
+  #     - ./temp:/app/temp
+  #   depends_on:
+  #     - es
+  #     - tika
+  #     - libreoffice
+  #   #    restart: unless-stopped
+  #   networks:
+  #     - aurak-network
 
-  web:
-    build:
-      context: .
-      dockerfile: ./web/Dockerfile
-      args:
-        - VITE_API_BASE_URL=/api
-    container_name: aurak-web
-    depends_on:
-      - server
-    ports:
-      - "80:80"
-      - "443:443"
-    volumes:
-      - ./nginx/conf.d:/etc/nginx/conf.d
-    networks:
-      - aurak-network
+  # web:
+  #   build:
+  #     context: .
+  #     dockerfile: ./web/Dockerfile
+  #     args:
+  #       - VITE_API_BASE_URL=/api
+  #   container_name: aurak-web
+  #   depends_on:
+  #     - server
+  #   ports:
+  #     - "80:80"
+  #     - "443:443"
+  #   volumes:
+  #     - ./nginx/conf.d:/etc/nginx/conf.d
+  #   networks:
+  #     - aurak-network
 
 networks:
   aurak-network: