FROM python:3.10-slim ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PIP_DISABLE_PIP_VERSION_CHECK=1 \ PIP_NO_CACHE_DIR=1 \ PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple \ PIP_TRUSTED_HOST=pypi.tuna.tsinghua.edu.cn \ NPM_CONFIG_REGISTRY=https://registry.npmmirror.com WORKDIR /app # ffmpeg is required for MoviePy (audio duration + encoding). RUN if [ -f /etc/apt/sources.list ]; then \ sed -i 's|http://deb.debian.org/debian|https://mirrors.tuna.tsinghua.edu.cn/debian|g; s|http://security.debian.org/debian-security|https://mirrors.tuna.tsinghua.edu.cn/debian-security|g' /etc/apt/sources.list; \ fi \ && if [ -f /etc/apt/sources.list.d/debian.sources ]; then \ sed -i 's|http://deb.debian.org/debian|https://mirrors.tuna.tsinghua.edu.cn/debian|g; s|http://security.debian.org/debian-security|https://mirrors.tuna.tsinghua.edu.cn/debian-security|g' /etc/apt/sources.list.d/debian.sources; \ fi \ && apt-get update && apt-get install -y --no-install-recommends \ ffmpeg \ fonts-dejavu-core \ nodejs \ npm \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt /app/requirements.txt RUN pip install -r /app/requirements.txt COPY . /app RUN cd /app/server && npm i --omit=dev EXPOSE 3000 CMD ["node", "/app/server/index.js"]