Files
re-xxm/Dockerfile
T

33 lines
1000 B
Docker

# 咻咻满 Reaction 看板 —— 单体服务镜像
#
# 运行:只读 Web + 调度 + Telegram(与 `python app.py` 等价)。
# 配置挂载到 /config,数据挂载到 /data。
FROM python:3.14-slim
ENV TZ=Asia/Shanghai \
PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
PIP_NO_CACHE_DIR=1
WORKDIR /app
RUN apt-get update \
&& apt-get install -y --no-install-recommends tzdata ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# 依赖锁定在 uv.lock 的 httpx 0.28.1;如需新增依赖请同步 pyproject.toml / uv.lock。
RUN pip install --no-cache-dir "httpx==0.28.1"
COPY app.py favsort.py ./
COPY reaction_board ./reaction_board
COPY vendor ./vendor
COPY tools ./tools
VOLUME ["/config", "/data"]
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/api/health', timeout=3)"
CMD ["python", "app.py", "--config", "/config/config.json"]