From fd674fac9cdbf7829e8901d10560faebc6ad9a36 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 22 Jan 2026 19:44:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AA=BF=E6=95=B4=20BabelDOC=20?= =?UTF-8?q?=E8=B3=87=E6=BA=90=E4=B8=8B=E8=BC=89=E9=82=8F=E8=BC=AF=EF=BC=8C?= =?UTF-8?q?=E7=B0=A1=E5=8C=96=E9=87=8D=E8=A9=A6=E6=B5=81=E7=A8=8B=E4=B8=A6?= =?UTF-8?q?=E6=94=B9=E5=96=84=E9=8C=AF=E8=AA=A4=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 56 +++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/Dockerfile b/Dockerfile index c05674d..67a5184 100644 --- a/Dockerfile +++ b/Dockerfile @@ -351,38 +351,38 @@ RUN set -eux && \ BABELDOC_SUCCESS=false; \ mkdir -p /tmp/babeldoc-offline && \ while [ $BABELDOC_RETRY_COUNT -lt $BABELDOC_MAX_RETRIES ]; do \ - BABELDOC_RETRY_COUNT=$((BABELDOC_RETRY_COUNT + 1)); \ - echo "🔄 BabelDOC 資源下載嘗試 $BABELDOC_RETRY_COUNT/$BABELDOC_MAX_RETRIES..."; \ - if timeout 600 babeldoc --generate-offline-assets /tmp/babeldoc-offline 2>&1; then \ - echo "✅ BabelDOC 離線資源包生成成功"; \ - OFFLINE_PKG=$(ls /tmp/babeldoc-offline/offline_assets_*.zip 2>/dev/null | head -1); \ - if [ -n "$OFFLINE_PKG" ] && [ -f "$OFFLINE_PKG" ]; then \ - echo "📦 找到離線包: $OFFLINE_PKG"; \ - if babeldoc --restore-offline-assets "$OFFLINE_PKG" 2>&1; then \ - echo "✅ BabelDOC 資源已成功恢復到快取"; \ - BABELDOC_SUCCESS=true; \ - break; \ - else \ - echo "⚠️ 資源恢復失敗,重試..."; \ - fi; \ - else \ - echo "⚠️ 未找到離線包,嘗試 warmup 模式..."; \ - if timeout 600 babeldoc --warmup 2>&1; then \ - BABELDOC_SUCCESS=true; \ - break; \ - fi; \ - fi; \ - else \ - echo "⚠️ BabelDOC 資源下載失敗或超時(10分鐘),等待 30 秒後重試..."; \ - sleep 30; \ - fi; \ + BABELDOC_RETRY_COUNT=$((BABELDOC_RETRY_COUNT + 1)); \ + echo "🔄 BabelDOC 資源下載嘗試 $BABELDOC_RETRY_COUNT/$BABELDOC_MAX_RETRIES..."; \ + if timeout 600 babeldoc --generate-offline-assets /tmp/babeldoc-offline 2>&1; then \ + echo "✅ BabelDOC 離線資源包生成成功"; \ + OFFLINE_PKG=$(ls /tmp/babeldoc-offline/offline_assets_*.zip 2>/dev/null | head -1); \ + if [ -n "$OFFLINE_PKG" ] && [ -f "$OFFLINE_PKG" ]; then \ + echo "📦 找到離線包: $OFFLINE_PKG"; \ + if babeldoc --restore-offline-assets "$OFFLINE_PKG" 2>&1; then \ + echo "✅ BabelDOC 資源已成功恢復到快取"; \ + BABELDOC_SUCCESS=true; \ + break; \ + else \ + echo "⚠️ 資源恢復失敗,重試..."; \ + fi; \ + else \ + echo "⚠️ 未找到離線包,嘗試 warmup 模式..."; \ + if timeout 600 babeldoc --warmup 2>&1; then \ + BABELDOC_SUCCESS=true; \ + break; \ + fi; \ + fi; \ + else \ + echo "⚠️ BabelDOC 資源下載失敗或超時(10分鐘),等待 30 秒後重試..."; \ + sleep 30; \ + fi; \ done; \ rm -rf /tmp/babeldoc-offline; \ if [ "$BABELDOC_SUCCESS" = "true" ]; then \ - echo "✅ BabelDOC 資源預下載完成"; \ + echo "✅ BabelDOC 資源預下載完成"; \ else \ - echo "⚠️ BabelDOC 資源下載在 $BABELDOC_MAX_RETRIES 次嘗試後仍失敗"; \ - echo " BabelDOC 功能將在 runtime 時按需下載資源"; \ + echo "⚠️ BabelDOC 資源下載在 $BABELDOC_MAX_RETRIES 次嘗試後仍失敗"; \ + echo " BabelDOC 功能將在 runtime 時按需下載資源"; \ fi; \ else \ echo "⚠️ babeldoc 命令不存在,跳過資源預下載"; \