chore: sync local updates

This commit is contained in:
2026-05-16 19:03:34 +08:00
parent acba445550
commit 42100c2d0a
102 changed files with 4007 additions and 1477 deletions

View File

@@ -1,28 +1,31 @@
# 使用 Python 官方镜像
# 萌芽主页 API — 生产镜像SQLite + 静态 logo
FROM python:3.11-slim
# 设置工作目录
WORKDIR /app
# 设置环境变量
ENV PYTHONUNBUFFERED=1
ENV RUN_MODE=production
ENV DATA_DIR=/app/data
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
RUN_MODE=production \
DATA_DIR=/app/data \
PORT=5000
# 复制依赖文件
# 依赖
COPY requirements.txt .
RUN pip install --no-cache-dir --no-compile -r requirements.txt
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 应用代码
COPY app.py db.py schema.sql ./
# 复制应用代码
COPY app.py .
# 技术栈 SVG镜像内 ./data/logo/app/logo-dist 供 entrypoint 在「空数据卷」时复制到挂载目录
COPY data/logo ./data/logo
COPY data/logo /app/logo-dist
COPY docker-entrypoint.sh /app/docker-entrypoint.sh
RUN chmod +x /app/docker-entrypoint.sh && mkdir -p /app/data/background
# 创建数据目录(如果挂载了外部卷,这个目录会被覆盖)
RUN mkdir -p /app/data/logo
# 暴露端口
EXPOSE 5000
# 启动应用
CMD ["python", "app.py"]
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:5000/api')" || exit 1
ENTRYPOINT ["/app/docker-entrypoint.sh"]
CMD ["sh", "-c", "exec gunicorn --bind 0.0.0.0:${PORT:-5000} --workers 2 --threads 2 --timeout 60 --access-logfile - --error-logfile - app:app"]