From 425be77b561462405370d5dee5512567a79fab82 Mon Sep 17 00:00:00 2001 From: zhinianboke <115088296+zhinianboke@users.noreply.github.com> Date: Thu, 14 Aug 2025 09:36:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9F=BA=E7=A1=80=E9=95=9C?= =?UTF-8?q?=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 9a379ca116966e66073e8420d54920ec1440dfce. --- Dockerfile | 25 ++----- Dockerfile-cn | 25 ++----- Start.py | 14 ---- install-playwright-deps.sh | 127 ---------------------------------- playwright_checker.py | 70 ------------------- utils/order_detail_fetcher.py | 6 -- 6 files changed, 8 insertions(+), 259 deletions(-) delete mode 100644 install-playwright-deps.sh delete mode 100644 playwright_checker.py diff --git a/Dockerfile b/Dockerfile index d64e63e..870186a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # 使用Python 3.11作为基础镜像 -FROM python:3.11-slim +FROM python:3.11-slim-bookworm # 设置标签信息 LABEL maintainer="zhinianboke" @@ -18,8 +18,6 @@ ENV PYTHONDONTWRITEBYTECODE=1 ENV TZ=Asia/Shanghai ENV DOCKER_ENV=true ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright -ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=0 -ENV DEBIAN_FRONTEND=noninteractive # 安装系统依赖(包括Playwright浏览器依赖) RUN apt-get update && \ @@ -50,6 +48,7 @@ RUN apt-get update && \ libasound2 \ libatspi2.0-0 \ libgtk-3-0 \ + libgdk-pixbuf2.0-0 \ libxcursor1 \ libxi6 \ libxrender1 \ @@ -62,10 +61,6 @@ RUN apt-get update && \ libx11-xcb1 \ libxfixes3 \ xdg-utils \ - # 尝试安装 gdk-pixbuf 包(兼容不同版本) - && (apt-get install -y --no-install-recommends libgdk-pixbuf-2.0-0 || \ - apt-get install -y --no-install-recommends libgdk-pixbuf2.0-0 || \ - echo "Warning: Could not install gdk-pixbuf package") \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && rm -rf /tmp/* \ @@ -83,24 +78,12 @@ COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt -# 复制自定义依赖安装脚本 -COPY install-playwright-deps.sh /tmp/install-playwright-deps.sh -RUN chmod +x /tmp/install-playwright-deps.sh - # 复制项目文件 COPY . . -# 复制 Playwright 检查脚本 -COPY playwright_checker.py /app/playwright_checker.py - # 安装Playwright浏览器(必须在复制项目文件之后) -RUN playwright install chromium - -# 使用自定义脚本安装 Playwright 依赖 -RUN /tmp/install-playwright-deps.sh || echo "Warning: Some Playwright dependencies could not be installed, but this may not affect functionality" - -# 清理安装脚本 -RUN rm -f /tmp/install-playwright-deps.sh +RUN playwright install chromium && \ + playwright install-deps chromium # 创建必要的目录并设置权限 RUN mkdir -p /app/logs /app/data /app/backups /app/static/uploads/images && \ diff --git a/Dockerfile-cn b/Dockerfile-cn index 6b42d75..5a543ad 100644 --- a/Dockerfile-cn +++ b/Dockerfile-cn @@ -1,5 +1,5 @@ # 使用Python 3.11作为基础镜像 -FROM python:3.11-slim +FROM python:3.11-slim-bookworm # 设置标签信息 LABEL maintainer="zhinianboke" @@ -18,8 +18,6 @@ ENV PYTHONDONTWRITEBYTECODE=1 ENV TZ=Asia/Shanghai ENV DOCKER_ENV=true ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright -ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=0 -ENV DEBIAN_FRONTEND=noninteractive #更换中科大源 RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources @@ -53,6 +51,7 @@ RUN apt-get update && \ libasound2 \ libatspi2.0-0 \ libgtk-3-0 \ + libgdk-pixbuf2.0-0 \ libxcursor1 \ libxi6 \ libxrender1 \ @@ -65,10 +64,6 @@ RUN apt-get update && \ libx11-xcb1 \ libxfixes3 \ xdg-utils \ - # 尝试安装 gdk-pixbuf 包(兼容不同版本) - && (apt-get install -y --no-install-recommends libgdk-pixbuf-2.0-0 || \ - apt-get install -y --no-install-recommends libgdk-pixbuf2.0-0 || \ - echo "Warning: Could not install gdk-pixbuf package") \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && rm -rf /tmp/* \ @@ -86,24 +81,12 @@ COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple&& \ pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple -# 复制自定义依赖安装脚本 -COPY install-playwright-deps.sh /tmp/install-playwright-deps.sh -RUN chmod +x /tmp/install-playwright-deps.sh - # 复制项目文件 COPY . . -# 复制 Playwright 检查脚本 -COPY playwright_checker.py /app/playwright_checker.py - # 安装Playwright浏览器(必须在复制项目文件之后) -RUN playwright install chromium - -# 使用自定义脚本安装 Playwright 依赖 -RUN /tmp/install-playwright-deps.sh || echo "Warning: Some Playwright dependencies could not be installed, but this may not affect functionality" - -# 清理安装脚本 -RUN rm -f /tmp/install-playwright-deps.sh +RUN playwright install chromium && \ + playwright install-deps chromium # 创建必要的目录并设置权限 RUN mkdir -p /app/logs /app/data /app/backups /app/static/uploads/images && \ diff --git a/Start.py b/Start.py index 2b68b4e..fb29ce4 100644 --- a/Start.py +++ b/Start.py @@ -76,20 +76,6 @@ async def main(): setup_file_logging() logger.info("文件日志收集器已启动,开始收集实时日志") - # 检查 Playwright 可用性 - print("检查 Playwright 可用性...") - try: - from playwright_checker import check_playwright_sync - playwright_available = check_playwright_sync() - if playwright_available: - logger.info("✅ Playwright 功能正常,订单详情获取和多数量发货功能可用") - else: - logger.warning("⚠️ Playwright 功能异常,订单详情获取功能将不可用") - logger.warning("系统将以降级模式运行,基础功能不受影响") - except Exception as e: - logger.error(f"Playwright 检查失败: {e}") - logger.warning("系统将以降级模式运行,基础功能不受影响") - loop = asyncio.get_running_loop() # 创建 CookieManager 并在全局暴露 diff --git a/install-playwright-deps.sh b/install-playwright-deps.sh deleted file mode 100644 index 7efce94..0000000 --- a/install-playwright-deps.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/bash - -# 自定义 Playwright 依赖安装脚本 -# 用于处理新版 Debian 中的包兼容性问题 - -# 不要在错误时立即退出,我们要尝试安装尽可能多的包 -set +e - -echo "开始安装 Playwright 依赖..." - -# 更新包列表 -apt-get update - -# 记录安装状态 -INSTALL_SUCCESS=0 -INSTALL_FAILED=0 - -# 定义核心依赖包列表 -CORE_PACKAGES=( - "libnss3" - "libnspr4" - "libatk-bridge2.0-0" - "libdrm2" - "libxkbcommon0" - "libxcomposite1" - "libxdamage1" - "libxrandr2" - "libgbm1" - "libxss1" - "libasound2" - "libatspi2.0-0" - "libgtk-3-0" - "libxcursor1" - "libxi6" - "libxrender1" - "libxext6" - "libx11-6" - "libxft2" - "libxinerama1" - "libxtst6" - "libappindicator3-1" - "libx11-xcb1" - "libxfixes3" - "xdg-utils" -) - -# 安装核心依赖包 -echo "安装核心依赖包..." -for package in "${CORE_PACKAGES[@]}"; do - if apt-get install -y --no-install-recommends "$package"; then - echo "✅ 成功安装: $package" - ((INSTALL_SUCCESS++)) - else - echo "❌ 安装失败: $package" - ((INSTALL_FAILED++)) - fi -done - -# 尝试安装 gdk-pixbuf 包(兼容不同版本) -echo "安装 gdk-pixbuf 包..." -if apt-get install -y --no-install-recommends libgdk-pixbuf-2.0-0; then - echo "✅ 成功安装: libgdk-pixbuf-2.0-0" - ((INSTALL_SUCCESS++)) -elif apt-get install -y --no-install-recommends libgdk-pixbuf2.0-0; then - echo "✅ 成功安装: libgdk-pixbuf2.0-0" - ((INSTALL_SUCCESS++)) -else - echo "❌ 安装失败: gdk-pixbuf packages" - ((INSTALL_FAILED++)) -fi - -# 定义字体包列表 -FONT_PACKAGES=( - "fonts-unifont" - "fonts-ubuntu" - "fonts-noto" - "fonts-noto-cjk" - "fonts-noto-color-emoji" -) - -# 安装字体包 -echo "安装字体包..." -for package in "${FONT_PACKAGES[@]}"; do - if apt-get install -y --no-install-recommends "$package"; then - echo "✅ 成功安装: $package" - ((INSTALL_SUCCESS++)) - else - echo "❌ 安装失败: $package" - ((INSTALL_FAILED++)) - fi -done - -# 清理 -apt-get clean -rm -rf /var/lib/apt/lists/* -rm -rf /tmp/* -rm -rf /var/tmp/* - -# 输出安装结果 -echo "==================================" -echo "Playwright 依赖安装完成" -echo "成功安装: $INSTALL_SUCCESS 个包" -echo "安装失败: $INSTALL_FAILED 个包" -echo "==================================" - -# 检查关键依赖是否安装成功 -CRITICAL_PACKAGES=("libnss3" "libnspr4" "libgtk-3-0" "libgbm1") -CRITICAL_MISSING=0 - -echo "检查关键依赖..." -for package in "${CRITICAL_PACKAGES[@]}"; do - if dpkg -l | grep -q "^ii.*$package"; then - echo "✅ 关键依赖已安装: $package" - else - echo "❌ 关键依赖缺失: $package" - ((CRITICAL_MISSING++)) - fi -done - -if [ $CRITICAL_MISSING -eq 0 ]; then - echo "🎉 所有关键依赖都已成功安装,Playwright 应该能正常工作" - exit 0 -else - echo "⚠️ 有 $CRITICAL_MISSING 个关键依赖缺失,Playwright 可能无法正常工作" - echo "但系统的其他功能不会受到影响" - exit 0 # 不要让构建失败 -fi diff --git a/playwright_checker.py b/playwright_checker.py deleted file mode 100644 index 1f05d42..0000000 --- a/playwright_checker.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Playwright 可用性检查工具 -在系统启动时检查 Playwright 是否正常工作 -""" - -import asyncio -import sys -import os -from loguru import logger - -async def check_playwright_availability(): - """检查 Playwright 是否可用""" - try: - from playwright.async_api import async_playwright - - logger.info("正在检查 Playwright 可用性...") - - async with async_playwright() as p: - # 尝试启动浏览器 - browser = await p.chromium.launch(headless=True) - - # 创建页面 - page = await browser.new_page() - - # 访问一个简单的页面 - await page.goto("data:text/html,