aa48145557
体检修复:启动日志不再打印 AUTH_TOKEN、密钥可清空、推送失败不占整段冷却、目录名与文案统一成 plugins/。
47 lines
1.5 KiB
Docker
47 lines
1.5 KiB
Docker
# 多账号学习控制台 —— 运行镜像
|
|
# 构建: docker build -t study-tool:latest .
|
|
# 瘦身: docker build --build-arg WITH_PLAYWRIGHT=0 -t study-tool:latest . (不要直链视频播放)
|
|
FROM python:3.12-slim-bookworm
|
|
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
PYTHONDONTWRITEBYTECODE=1 \
|
|
PIP_NO_CACHE_DIR=1 \
|
|
PIP_DISABLE_PIP_VERSION_CHECK=1 \
|
|
DEBIAN_FRONTEND=noninteractive \
|
|
TZ=Asia/Shanghai \
|
|
HOST=0.0.0.0 \
|
|
PORT=8848 \
|
|
DATA_DIR=/app/data \
|
|
DB_PATH=/app/data/study.db \
|
|
PLAYWRIGHT_BROWSERS_PATH=/ms-playwright
|
|
|
|
WORKDIR /app
|
|
|
|
# nodejs: 莞易学插件 plugins/guanyixue/script/desenc.js 要用(登录表单 rsa 字段走站点原版 DES 算法)
|
|
# curl: 健康检查用
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends nodejs ca-certificates curl tzdata \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# 国内镜像:默认走阿里云;要回官方源加 --build-arg PIP_INDEX_URL=https://pypi.org/simple
|
|
ARG PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple
|
|
|
|
COPY requirements.txt ./
|
|
RUN pip install -r requirements.txt -i "$PIP_INDEX_URL"
|
|
|
|
# 直链视频(fileType=other)必须用真浏览器播到结尾;不需要就 WITH_PLAYWRIGHT=0
|
|
ARG WITH_PLAYWRIGHT=1
|
|
RUN if [ "$WITH_PLAYWRIGHT" = "1" ]; then \
|
|
playwright install --with-deps chromium && rm -rf /var/lib/apt/lists/* ; \
|
|
fi
|
|
|
|
COPY . .
|
|
RUN mkdir -p /app/data
|
|
|
|
EXPOSE 8848
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
|
|
CMD curl -fsS "http://127.0.0.1:${PORT}/api/health" || exit 1
|
|
|
|
CMD ["python", "app.py"]
|