FROM python:3.12-slim AS builder WORKDIR /app # Install system dependencies for build RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Install Python dependencies COPY requirements-web.txt . RUN pip install --no-cache-dir -r requirements-web.txt COPY . . RUN mkdir -p /app/logs /app/downloads # Final stage: production image FROM python:3.12-slim WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends \ ffmpeg \ tzdata \ curl \ gnupg \ && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ && apt-get install -y --no-install-recommends nodejs \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Set timezone ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo "$TZ" > /etc/timezone # Copy Python dependencies and project files from the builder stage COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages COPY --from=builder /usr/local/bin /usr/local/bin COPY --from=builder /app/ ./ CMD ["sh", "-c", "python main.py --web --host 0.0.0.0"]