FROM python:3.12-slim # 设置工作目录 WORKDIR /app # 更换阿里云镜像源并安装系统依赖 RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && \ apt-get update && apt-get install -y \ wget \ gnupg \ openssh-client \ autossh \ && rm -rf /var/lib/apt/lists/* # 安装Playwright的依赖(使用阿里云源) RUN apt-get update && apt-get install -y \ libnss3 \ libnspr4 \ libatk1.0-0 \ libatk-bridge2.0-0 \ libcups2 \ libdrm2 \ libdbus-1-3 \ libxkbcommon0 \ libxcomposite1 \ libxdamage1 \ libxfixes3 \ libxrandr2 \ libgbm1 \ libasound2 \ libpango-1.0-0 \ libpangocairo-1.0-0 \ && rm -rf /var/lib/apt/lists/* # 配置pip源 RUN mkdir -p /root/.pip && \ echo "[global]" > /root/.pip/pip.conf && \ echo "index-url = https://pypi.tuna.tsinghua.edu.cn/simple" >> /root/.pip/pip.conf && \ echo "trusted-host = pypi.tuna.tsinghua.edu.cn" >> /root/.pip/pip.conf # 更新pip RUN python -m pip install --upgrade pip RUN apt-get update && \ apt-get install -y --no-install-recommends tzdata && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ dpkg-reconfigure -f noninteractive tzdata && \ rm -rf /var/lib/apt/lists/* RUN pip install uv \ && rm -rf /root/.cache/pip ENV UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple # 复制依赖文件 COPY requirements.txt . # 配置清华源并安装 Python 依赖 # RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \ # pip install --only-binary=all --no-cache-dir -r requirements.txt RUN uv pip install --system -r requirements.txt # 预先安装 Playwright 的系统依赖 RUN apt-get update && apt-get install -y \ xvfb \ libopengl0 \ && rm -rf /var/lib/apt/lists/* # 安装中文字体(使用阿里云源,允许失败) RUN apt-get update && apt-get install -y \ fonts-noto-cjk \ fonts-wqy-zenhei \ fonts-wqy-microhei \ && rm -rf /var/lib/apt/lists/* || echo "字体安装失败,继续构建" # 安装Playwright浏览器 RUN playwright install chromium RUN playwright install-deps # 暴露端口 EXPOSE 80 # 运行应用 # CMD ["python", "update_data.py"]