- 更换阿里云镜像源提升apt-get安装速度 - 新增openssh-client和autossh系统依赖 - 所有apt-get操作后统一清理缓存 - Playwright依赖安装使用阿里云源镜像 - 安装中文字体时允许失败不影响构建 - 保持时区配置为Asia/Shanghai - 安装Playwright chromium浏览器版本一致
86 lines
2.2 KiB
Plaintext
86 lines
2.2 KiB
Plaintext
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"] |