FROM python:3.11-slim # System dependencies (mirrors.aliyun.com for CN networks) RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && \ apt-get update && apt-get install -y --no-install-recommends \ git \ && rm -rf /var/lib/apt/lists/* # 复制项目代码(含 .git,供 compose 的 app_code 卷内 git pull 更新工作流使用) COPY . /app WORKDIR /app # Install Python dependencies RUN pip install --no-cache-dir -r requirements.txt EXPOSE 5000 # Gunicorn:2 个 worker 对应 2 逻辑核心(1 物理核心),线程模式; # 2G 内存/2 CPU 限制由 docker-compose.yml 的 deploy.resources 配置。 # 后台调度器通过 PostgreSQL advisory lock 保证只在其中一个 worker 内运行。 CMD gunicorn --workers ${GUNICORN_WORKERS:-2} --threads ${GUNICORN_THREADS:-8} \ --bind 0.0.0.0:5000 --timeout 120 \ --access-logfile - --error-logfile - start:app