Files
sbnews/docker/crawler/Dockerfile
T

38 lines
1.1 KiB
Docker

FROM python:3.11-slim-bookworm
ENV TZ=Asia/Shanghai \
PYTHONUNBUFFERED=1 \
PIP_NO_CACHE_DIR=1 \
PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple \
DQD_CONFIG_PATH=/app/config/settings.yaml \
DQD_TASKS_FILE=/app/config/crawler_tasks.yaml \
DQD_LOCK_DIR=/app/data/locks
WORKDIR /app
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
bash \
ca-certificates \
cron \
curl \
gcc \
g++ \
tzdata \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt /app/requirements.txt
RUN python -m pip install --upgrade pip setuptools wheel \
&& python -m pip install -r /app/requirements.txt
# API 型采集任务不依赖 Chromium。浏览器型采集需要时再在镜像内单独安装,
# 避免本地首次构建因浏览器下载通道不可达而阻塞整个调度器。
COPY . /app
RUN sed -i 's/\r$//' /app/docker/entrypoint.sh \
&& mkdir -p /app/logs /app/data/locks /etc/sport-era-crawler \
&& chmod +x /app/docker/entrypoint.sh
ENTRYPOINT ["/app/docker/entrypoint.sh"]