975f9e5887
- Chromium 启动参数优化:禁用 dev-shm 和 GPU 加速,防止Docker内存不足 - 增加所有超时时间:login/navigate/export 超时 30s,下载超时 300s - 改进网络延迟处理:增加数据加载等待时间,添加网络加载检测 - Docker Compose 资源配置:限制 2 CPU / 2GB 内存,DNS 配置国际公共 DNS - Dockerfile 优化:添加 PYTHONHASHSEED 环境变量,跳过浏览器下载校验 - 新增 docker-debug.sh 脚本:便捷测试 Docker 容器中的下载功能 - 新增 .dockerignore:加速 Docker 构建,减少镜像大小 Docker 下载现在支持更长的网络延迟和更大的数据量
59 lines
1.4 KiB
Docker
59 lines
1.4 KiB
Docker
# 使用官方 Python 运行时作为父镜像
|
|
FROM python:3.9-slim
|
|
|
|
# 设置工作目录
|
|
WORKDIR /app
|
|
|
|
# 设置环境变量
|
|
# 防止 Python 生成 .pyc 文件
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
# 确保 Python 输出不被缓冲
|
|
ENV PYTHONUNBUFFERED=1
|
|
# 禁用 Python 的硬件指令集检查,提高Chromium兼容性
|
|
ENV PYTHONHASHSEED=0
|
|
|
|
# 安装 Playwright 所需的系统依赖 + 网络优化
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
wget \
|
|
ca-certificates \
|
|
fonts-liberation \
|
|
libasound2 \
|
|
libatk-bridge2.0-0 \
|
|
libatk1.0-0 \
|
|
libcups2 \
|
|
libdbus-1-3 \
|
|
libdrm2 \
|
|
libgbm1 \
|
|
libgtk-3-0 \
|
|
libnspr4 \
|
|
libnss3 \
|
|
libxcomposite1 \
|
|
libxdamage1 \
|
|
libxrandr2 \
|
|
xdg-utils \
|
|
dnsmasq \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# 复制依赖文件
|
|
COPY requirements.txt .
|
|
|
|
# 安装 Python 依赖
|
|
# 使用阿里云镜像源加速
|
|
RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
|
|
|
|
# 安装 Playwright Chromium 浏览器(增加超时以处理网络不稳定)
|
|
RUN PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=0 playwright install --with-deps chromium
|
|
|
|
# 复制当前目录内容到容器中的 /app
|
|
COPY . .
|
|
|
|
# 创建上传目录和数据目录(确保权限)
|
|
RUN mkdir -p uploads data downloads && chmod 777 uploads data downloads
|
|
|
|
# 暴露端口 5000
|
|
EXPOSE 5000
|
|
|
|
# 增加容器内存限制和进程管理
|
|
# 运行 app.py
|
|
CMD ["python", "app.py"]
|