Files
2026-07-10 18:55:55 +08:00

44 lines
1.4 KiB
Docker

FROM python:3.11
# 1. 替换为腾讯云APT源 + 仅装时区依赖
RUN sed -i 's/deb.debian.org/mirrors.tencent.com/g' /etc/apt/sources.list.d/debian.sources && \
apt update && apt install -y --no-install-recommends tzdata && \
rm -rf /var/lib/apt/lists/*
# 2. 核心环境变量
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
FLASK_APP=run:app \
TZ=Asia/Shanghai
# 3. 设置时区
RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone
# 4. 工作目录 + 非root用户
WORKDIR /app
RUN groupadd -r appuser && useradd -r -g appuser appuser && chown -R appuser:appuser /app
# 新增图片存放地址
RUN mkdir -p /app/logs /app/uploads \
&& chown -R appuser:appuser /app/logs /app/uploads \
&& chmod -R 777 /app/logs /app/uploads
USER appuser
# 5. 腾讯云PyPI源 + 极简提速依赖安装
COPY --chown=appuser:appuser requirements.txt /app/
RUN python -m venv /app/venv && \
# /app/venv/bin/pip install --no-cache-dir --upgrade pip && \
/app/venv/bin/pip install --no-cache-dir --prefer-binary -r requirements.txt -i https://mirrors.cloud.tencent.com/pypi/simple/
# 6. 复制项目文件
COPY --chown=appuser:appuser . /app/
# 7. 切换非root用户
USER appuser
# 8. 暴露端口
EXPOSE 5221
# 9. 启动Gunicorn
CMD ["/app/venv/bin/gunicorn", "--bind", "0.0.0.0:5221", "--workers", "7", "--threads", "2", "run:app"]